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