(ASA6.0引擎)+(PB6.5做的程序)+(SqlAnyWhere5.5的数据库)的问题,搞不懂
humb 2002-12-03 12:31:24 (ASA6.0引擎)+(PB6.5做的程序)的问题,搞不懂,请教各位!
1、数据库服务器文件清单:
mydata.db(SqlAnyWhere5.5的数据库)
dbsrv6.exe
dbctrs6.dll
dblgen6.dll
dblib6.dll
dbserv6.dll
用命令行dbsrv6.exe mydata.db -n mysrv -x tcpip -c 5m -Q可正常启动数据库。
2、客户端机器/程序情况
1)引擎文件只用了dbodbc6.dll
2)自制安装程序配置了ODBC
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ASAMydata]
"Driver"="C:\\PROGRA~1\\client\\dbodbc6.dll"
"Description"="我的数据库"
"AutoStop"="Yes"
"Integrated"="NO"
"Debug"="No"
"DisableMultiRowFetch"="No"
"CommLinks"="tcpip{}"
"EngineName"="mysrv"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server
Anywhere 6.0(mydata)]
"CPTimeout"="<not pooled>"
"Driver"="C:\\PROGRA~1\\client\\dbodbc6.dll"
"Setup"="C:\\PROGRA~1\\client\\dbodbc6.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"Adaptive Server Anywhere 6.0(mydata)"="Installed"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Translators]
"Adaptive Server Anywhere 6.0(mydata)"="Installed"
3)客户端程序中用以下语句连接
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=ASAHotstore;UID=dba;PWD=sql'"
connect;
程序启动时若发现注册表中CommLinks=tcpip{},则要求用户输入服务器所在的机器名,并将注册表更新为CommLinks=tcpip{host=机器名},然后再连接数据库
3、现象描述
1)若服务器和客户端同装在一台2000机器上,则即使注册表中CommLinks=tcpip{}或者CommLinks=tcpip{不存在的机器名}都可以正常连接数据库;
2)若服务器和客户端同装在一台98机器上,则即使注册表中CommLinks=tcpip{正确的机器名},也不能连接数据库;
3)若服务器和客户端分别装在两台机器上,则即使注册表中CommLinks=tcpip{正确的机器名},无论什么操作系统都不能连接。
不知道什么原因,请各位赐教!!!