pb自动注册ODBC的sqlanywhere数据源



pb自动注册ODBC的sqlanywhere数据源

(2013-04-09 13:13:12)

pb自动注册ODBC的sqlanywhere数据源,需要把相应的sqlanywhere和数据库文件copy到当前程序所在文件夹,这里用的sqlanywhere8.0,f_app_path()函数获取当前程序路径,方法见我的博客pb9获得当前程序所在路径及中文字符长度处理。在连接数据时SQLCA.DBParm = "ConnectString='DSN=xtgl;UID=DBA;PWD=SQL'"+ &
             "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"  这句可以让连接不上数据库时不出现配置数据源对话框。代码在winXP和win7,windows2008下试过,可以注册。

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
 Messagebox('错误','应用程序无法设置ODBC DRIVERS,系统将终止运行,StopSign!');
 RETURN;
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
 Messagebox('错误','应用程序无法设置ODBCINST.INI,系统将终止运行,StopSign!');
 RETURN;
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
 Messagebox('错误','应用程序无法设置ODBC DATA SOURCE,系统将终止运行,StopSign!');
 RETURN;
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
 Messagebox('错误','应用程序无法设置ODBC.INI,系统将终止运行!',StopSign!);
 RETURN
END IF


SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=xtgl;UID=DBA;PWD=SQL'"+ &
             "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"
connect using sqlca;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值