标签: pb9odbc自动注册sqlanywhere |
pb自动注册ODBC的sqlanywhere数据源,需要把相应的sqlanywhere和数据库文件copy到当前程序所在文件夹,这里用的sqlanywhere8.0,f_app_path()函数获取当前程序路径,方法见我的博客pb9获得当前程序所在路径及中文字符长度处理。在连接数据时SQLCA.DBParm = "ConnectString='DSN=xtgl;UID=DBA;PWD=SQL'"+ &
Ulong ul_num;
Int li_sysdir,li_dir1,li_dir2,li_dir3,li_dir4,li_dir5,li_dir6,li_app;
String ls_driver,ls_start,ls_location,ls_apppath,ls_odbcstr,ls_db_path
ls_location = f_app_path()
ls_start = ls_location+'dbeng80.EXE'
ls_driver = ls_location+'dbodbc8.dll'
//设置ODBCODBCINST.INIODBC DRIVERS
li_sysdir=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC DRIVERS','Adaptive Server Anywhere 8.0',RegString!,'Installed');
IF li_sysdir = -1 THEN
END IF
//设置ODBCODBCINST.INI
li_dir2=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0','Driver',RegString!,ls_driver)
li_dir3=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0','Setup',RegString!,ls_driver)
IF li_dir2=-1 OR li_dir3=-1 THEN
END IF
//设置ODBC DATA SOURCE('xtgl'为数据源名)
li_sysdir=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\ODBC Data Sources','xtgl',RegString!,'Adaptive Server Anywhere 8.0');
IF li_sysdir=-1 THEN
END IF
ls_db_path=ls_location+'data.db';
//设置ODBC.INI
li_dir1=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','autostop',RegString!,'yes');
li_dir2=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','Charset',RegString!,'cp850');
li_dir3=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','DataBaseFile',RegString!,ls_db_path);
li_dir4=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','DataBaseName',RegString!,'xtgl');
li_dir5=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','driver',RegString!,ls_driver);
li_dir6=RegistrySet('HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\xtgl','Integrated',RegString!,'No');
IF li_dir1=-1 OR li_dir2=-1 OR li_dir3=-1 OR li_dir4=-1 OR li_dir5=-1 OR li_dir6=-1 THEN
END IF
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=xtgl;UID=DBA;PWD=SQL'"+ &
connect using sqlca;