现在的位置: 首页 > 综合 > 正文

PowerBuilder 自动注册ODBC

2018年02月07日 ⁄ 综合 ⁄ 共 2664字 ⁄ 字号 评论关闭

本文主要是自动注册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

 

抱歉!评论已关闭.