|
2.安装AHA8.0的驱动程序
3.数据源的注册
这里附上需要的AHA驱动程序,其实就几个,为了安全我将网上说的PB的也放了进去,我怀疑将AHA8里面的win32全端最简单
这个其实可以一起来
在你的应用的open事件里加入以下内容
string ls_drivervalue
string ls_source
string ls_driverpath="HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers"
string ls_Sourcespath="HKEY_CURRENT_USER\Software\ODBC\ODBC.INI"
string appdir
appdir="F:\Customer\runtime\dbodbc8.dll" //驱动程序地址
string Sybase_name
Sybase_name="HF" //数据源名称
RegistryGet(ls_driverpath,"Adaptive Server Anywhere 8.0",regstring!,ls_drivervalue)
if ls_drivervalue<>"Adaptive Server Anywhere 8.0" then // 注册AHA 8.0
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers","Adaptive Server Anywhere 8.0",RegString!,"Installed")
RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Translators","Adaptive Server Anywhere 8.0 Translator",RegString!,"Installed")
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0","Driver",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0","Setup",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0 Translator","Driver",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0 Translator","Setup",RegString!,appdir)
end if
//建立数据源 如果没有数据源建立 有的话 连接
RegistryGet(ls_Sourcespath,"HF",regstring!,ls_source)
if lls_source<>"HF" then // 是否数据源存在
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources",Sybase_name,RegString!,"Adaptive Server Anywhere 8.0")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Driver",RegString!,appdir)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","UID",RegString!,"dba")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","PWD",RegString!,"sql")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Driver",RegString!,appdir)
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Autostop",RegString!,"Yes")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","compress",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","EngineName",RegString!,"HF")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","Integrated",RegString!,"No")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\HF","CommLinks",RegString!,"TCPIP{HOST=192.168.0.104}") //这里的IP地址是服务器的IP地址
end if
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=HF;UID=dba;PWD=sql'"
connect;
open(w_main)
基本上这样就可以实现连接并正常运行了
但还是有很多问题
1.两个if判断语句好像在存在的情况下也是写入,并没有跳过,不知道是哪里写错了
2.这里要将数据源名称和驱动的设置成可变是最好的,我这里过于简单,但容易懂一些
3.关于注册表的写法可能和别人不一样,我是自己一个个手动建立后再用程序写上的,还有如果运行后注册表里没有AHA8的文件夹出现,建议重启一次即可
4.没有数据库连接失败的提示,要增加
基本上就这些,也是一次次摸索的过程,还有大大们的帮助,希望能抛砖引玉,多多指点
谢谢
|
-
|