【PB】DBMS is not supported in your current installation解决方案

来源:互联网 发布:ios白噪音app 知乎 编辑:程序博客网 时间:2024/05/21 11:25

第一种情况:

如果单击PB环境中的db profile工具栏按钮,然后选择相应的接口,最后单击“new...”按钮时出现如图提示时

解决方法:

我们在使用PowerBuilder的直联接口(native drivers)联接诸如Sybase或Oracle这样的大型数据库时,有时会发生联不上库的情况, 并且遇到提示信息 “DBMS XXX is not supported inyour current installation”。

  产生这种现象的原因是我们没有正确地安装或设置好PB的native driver或数据库的客户端软件(如Sybase的Open Client)。具体的有以下三个原因:

1. PowerBuilder安装的是32位的,而数据库的客户端软件安装的却是16位的;或PowerBuilder安装的是16位的,而数据库的客户端软件安装的却是32位的。

2. native driver的DLLs所在的路径没有包括在机器的系统路径中。

3. 数据库的客户端软件的DLLs所在的路径没有包括在机器的系统路径中。

  对上述三种原因的解决方法如下:

1. 确认PB和数据库的客户端软件都是32位的或都是16位的。

2. 将PB的运行环境的路径(5.0 32-bit long name: \Program Files\CommonFiles\Poweresoft Shared, 5.0 32-bit short name或5.0 16-bit: \pwrs\sys32,6.0: \Program Files\Powersoft\shared)加到机器的系统路径中(autoexec.bat中的path)。或者,比如用的sqlserver数据库,把ntwdblib.dll拷到system32文件夹下。

3. 将数据库的客户端软件的DLLs所在的路径(如Sybase Open Client的路径\sybase\bin, Oracle SQL*NET的路径\orawin\sys32)加到机器的系统路径中。

第二种情况:

当第一种情况通过没有问题时,而在程序运行时出现如图提示时

解决方法:

出现这个错误的原因不是 SQL ANYWHERE 的问题,是 SQLCA 的 DBMS 属性没有设置正确。大多数人在使用 PB 开发程序时关于 SQLCA 的属性设置往往爱用 ProfileString 函数,其中的文件名参数往往又不带路径或者又使用了绝对路径。不管是那种情况,都可能出现 ProfileString 找不到文件的情况。这样 SQLCA 的 DBMS 属性就没有被赋值。所以才会出现 "DBMS NOT Support ..."字样的信息。
当然如果是相对路径的话,只会在 PB 开发环境中出现,这时只要用 PB 的文本编辑器打开 INI 文件一次,这样 PB 的当前目录又回到了 INI 文件所在目录
还有许多的初学者,采用的 INI 文件还是 PB.INI ,即:Sqlca.dbms = ProfileString ( "pb.ini", "database", "dbms", "") ,pb的安装目录里存在这个文件,所以在设置数据库连接的时候不要用这个文件名,PB 每次连接一个不同的数据库都会更改 PB.iNI 。所以经常出现这种情况。而且这种程序放到另外一台机上不能运行,除非将 PB.INI 也 Copy 了

原创粉丝点击