高分求救:關於PB9用OLEDB聯接SQL2005問題
後台數據庫用的是SQL2005,前端用的是PB9. OLEDB聯接方式.編譯出來後,絕大部份客戶端是可以執行的(包括WIN98,WIN2000,WINXP). 但就發現有少數的幾台機只能用直連而不能用OLEDB聯接. 非常的奇怪.PB.INI相關內容如下:
[Database]
servername=192.168.0.5
database=systemdb
DBMS=OLE DB
DbParm=PROVIDER='SQLOLEDB',DATASOURCE='192.168.0.5',PROVIDERSTRING='database=systemdb'
logid=sa
LogPass=
相關需要的DLL也是不少的,否則也不會大部份機器可以聯接得上.
在程序中也用了以下語句自動注冊:
connectto = 'DBMSSOCN,' + serverip
if long(tcp) > 0 then
connectto = connectto +','+tcp
end if
rc = RegistrySet("HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo", servername, regstring!, connectto)
rc = RegistrySet("HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\Tcp", 'DefaultPort', ReguLong!, long(tcp))
rc = RegistrySet("HKEY_CURRENT_USER\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\Np", "DefaultPipe", regstring!, 'sql\query')
rc = RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\MSSQLServer\Client\ConnectTo", "DSQUERY" , regstring!, "DBNETLIB" )
rc = RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo", servername, regstring!, connectto)
rc = RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\Tcp", 'DefaultPort', ReguLong!, long(tcp))
rc = RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\Np", "DefaultPipe", regstring!, 'sql\query')
rc = RegistrySet("HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\ConnectTo", "DSQUERY" , regstring!, "DBNETLIB" )