PowerBuilder 自动注册ODBC

本文主要是自动注册Adaptive Server Anywhere8.0数据库的ODBC

 

需要把 dbodbc8.dll ,dbeng8.exe 文件,我是放在程序文件夹一起,也可以放在系统文件夹,GetSystemDirectory()获取系统文件夹目录,赋值给ls_dir就是.

//
注册ODBC
//注册ODBC
Int reg_result
String ls_dir,ls_system,ls_sys,ls_install
String ls_date,ls_run

ls_dir = GetCurrentDirectory ( )
If Right(ls_dir,1) <> '/' Then ls_dir = ls_dir + "/"
ls_system = ls_dir + "dbodbc8.dll" //odbc接口文件
ls_date = ls_dir +"Database/" +as_database //数据库文件
ls_run = ls_dir +"dbeng8.exe " //ASA运行文件

If Not FileExists( ls_system) Then
 MessageBox("","找不到文件dbodbc8.dll,请确定文件在程序文件夹 "+ ls_dir + "内!")
 Return -1
End If

If Not FileExists(ls_date) Then
 MessageBox("","找不到数据库文件yfsc.db,请确定文件在 " + ls_dir +"database内!")
 Return -1
End If

If  FileExists(ls_run)  Then
 ls_run = ls_run +" -Q -d -c8m " //参数-q 运行时隐藏asa数据库
Else
 MessageBox("","找不到文件dbeng8.exe,请确定文件在程序文件夹 " + ls_dir +"内")
 Return -1
End If

ls_sys = "HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/ODBC DRIVERS"
RegistryGet(ls_sys, "Adaptive Server Anywhere 8.0", RegString!,ls_install) //ASA数据源是否注册

If Trim(ls_install) <> "Installed" Then //注册ASA数据源,为了直观 ,我把健值都写出来,实际可以用string代替,这样代码看上去没那么长

 reg_result = RegistrySet("HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/ODBC DRIVERS","Adaptive Server Anywhere 8.0",RegString!,"Installed")
 reg_result = RegistrySet("HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/Adaptive Server Anywhere 8.0","driver",RegString!,ls_system)
 reg_result = RegistrySet("HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/Adaptive Server Anywhere 8.0","setup",RegString!,ls_system)
 
 MessageBox("","Adaptive Server Anywhere 8.0注册成功!")
End If

//注册ODBC , 如果不返回1 做错误处理
Integer li_err

li_err = RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Autostop",RegString!,"yes")

If li_err <> 1 Then //其它的一样,就不写了
 MessageBox("","注册ASA数据库出错,请删除原有数据源后重新注册!")
 Return -1
End If


RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Compress",RegString!,"no")
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Debug",RegString!,"no")
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","DisableMultiRowFetch",RegString!,"no")
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","DatabaseFile",RegString!,ls_date  )
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Description",RegString!,'yfsc')
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Driver",RegString!,ls_system)
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","EngineName",RegString!,'yfsc')
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","PWD",RegString!,"")
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","Start",RegString!,ls_run )
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/yfsc","UID",RegString!,"DBA")
RegistrySet("HKEY_CURRENT_USER/software/odbc/odbc.ini/odbc data sources","yfsc",RegString!,"Adaptive Server Anywhere8.0")

 

Return 0

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值