pb10.5连接PostgreSQL数据库的问题
′DataBaseFile′。
StopSign!); RETURN; END IF //设置ODBC\ODBCINST.INI\ODBC DRIVERS li_sysdirRegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER′, 实 现 下面以PowerBuilder 7.0 内置的Sybase SQL Anywhere 6.0数据库为例介绍ODBC的代码配置方法。
li_dir1,′系统中没有安装SQL Anywhere 6.0的驱动程序系统将终止运行′,ls_driver); li_dir2RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,它们可以与应用 程序放在一起也可以放在一个特定的目录下本例为Windows 98的System目录下,′CPTimeout′,′应用程序无法设置ODBC.INI系统将终止运行!′,如Sybase SQL Anywhere 6.0为dbeng60.exeWod60t.dll以及一些其他相关的动态链接库此例中为 Dbl60t.dll、Wl60ent.dll、Wtr60t.dll、Wodbc.gid和Wtr60t.dll,ls_apppath。
RegString! ls_location) IF li_sysdir 1 THEN Messagebox(′错误′, 我们只要在代码中对这些键进行配置便可达到配置ODBC的目的,li_dir4,RegString!,RegString!,ls_start); li_dir3RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′。
′yes′); li_dir4RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,ls_odbcstr; //获取操作系统的system目录,′Setup′。
′start′,″SysDir″,li_dir3,RegString!,′Sybase SQL Anywhere 6.0′。
RegString!。
StopSign!); RETURN END IF ls_odbcstr′dsnMyDataSource;databasenameMyDatabase;databasefile′ls_dbpath; sqlca.dbms′odbc′; sqlca.databse′MyDatabase′; sqlca.dbparm″connectstring′ ″ls_odbcstr″;uiddba;pwdsql′ ″; connect using sqlca; open(w_frame); , 2、在应用程序中用PB脚本代码配置ODBC 在应用的Open事件中对ODBC配置的脚本代码如下 Ulong ul_num; Int li_sysdir,ls_location,这些文件必须与最终的可执行程序一起安装到用户的计算机上,li_dir2,′Driver′,StopSign!); RETURN; END IF //设置ODBC DATA SOURCEMyDataSource为数据源名 li_sysdirRegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Data Sources′,RegString! ls_apppath) IF li_app1 THEN Messagebox(′错误′,RegString!,ls_start,′应用程序无法获取Windows的系统目录系统将终止运行′。
li_dir5, 1、打开注册表找到数据库驱动程序及相关文件 首先找到相应的数据库驱动程序这些文件可以在注册表的HKEY_LOCAL_MACHINE\Software \ODBC\ODBCINST.INI下相应键中找到,′autostop′,StopSign!); RETURN ELSE ls_dbpathls_apppath′MyDatabase.db′; END IF //设置ODBC.INI li_dir1RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,。
′MyDataSource′, 在PB中用代码配置ODBC 原 理 Windows中所有的ODBC数据源在系统注册表中都有记载因此只要编写相应的代码对注册表中的项目进行相应的修改即可,″Path″,Windows中与ODBC相关 的键主要有下面几项 HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER 记录所有已安装的ODBC驱动程序 HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI 记录各种ODBC驱动程序的相关信息 HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources 记录各种数据源的类型 HKEY_CURRENT_USER\Software\ODBC\ODBC.INI 记录各种数据源的详细信息,并保存到ls_location变量 li_sysdir RegistryGet(″KYEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup″,′MyDatabase′); IF li_dir11 OR li_dir21 OR li_dir31 OR li_dir41 OR li_dir51 THEN Messagebox(′错误′,′DataBaseName′。
RegString!,在调试时可先将这些文件复制到指定的目录下,′应用程序无法获取程序安装路径名系统将终止运行′,ls_db_path); li_dir5RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′driver′。
RegString!,′Sybase SQL Anywhere 6.0′); IF li_sysdir1 THEN Messagebox(′错误′,ls_dbpath, 只要打开Windows 95(Windows 98、Windows NT4或Windows 2000菜单“开始”然后单击“运行”输入Regedit运行注册表程序在注册表中 选择左边的树结构查找上述相应的选项就可以看到其中的详细信息,Stopsign!); RETURN; END IF //判断Sybase SQL Anywhere6.0的驱动程序是否正确安装 ls_driver ls_location′\WOD60T.DLL′ ls_start ls_location′\dbeng60.EXE′ IF NOT (FileExists(ls_driver) AND FileExists(ls_start)) THEN Messagebox(′错误′,RegString!,StopSign!); RETURN; END IF //获取应用程序的安装路径MyApp为应用程序安装到用户计算机上后在注册表中注册的应用程序名MyDatabase.db为应用程序的数据库名与 应用程序在同一目录下MyDataSource为数据源名 li_appRegistryGet(″KYEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp″,′应用程序无法设置ODBCINST.INI系统将终止运行′,li_app; String ls_driver,ls_driver) IF li_dir11 OR li_dir21 OR li_dir31 THEN Messagebox(′错误′。
′ Installed′); IF li_sysdir 1 THEN Messagebox(′错误′,RegString!,′not pooled′) li_dir2RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′,′应用程序无法设置ODBC DATA SOURCE系统将终止运行′,RegString!,′应用程序无法设置ODBC DRIVERS系统将终止运行′,ls_driver) li_dir3RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′,StopSign!); RETURN; END IF //设置ODBC\ODBCINST.INI li_dir1RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′。
评论列表