高分求救:關於PB9用OLEDB聯接SQL2005問題

雄关漫道真如铁, 2006-11-24 11:24:12
後台數據庫用的是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" )
...全文
430 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不能解決全部問題,但也解決了大部問題了,結貼
leyueming 2006-11-28
  • 打赏
  • 举报
回复
高手对高分题一般比较有兴趣
我来接点分
哈哈
jdsnhan 2006-11-28
  • 打赏
  • 举报
回复
我觉得不能执行的机器上,组件问题不能排除。我原来做dcom的时候,也是一个机器怎么也不能用。把这个组件换掉就可以了.
PB0155 2006-11-28
  • 打赏
  • 举报
回复
不看你一大堆的东西
如果在WINDOWS98上面连接不了SQL2K(oleDB连接方式),直接安装MDAC2.7,如果还不行,在安装SQLSERVER2K,记住,安装的时候选择“仅连接”
lzheng2001 2006-11-27
  • 打赏
  • 举报
回复
也有可能是网络问题,楼主检查一下网络是否能ping通
青锋-SS 2006-11-24
  • 打赏
  • 举报
回复
看看.
  • 打赏
  • 举报
回复
没用过,关注!
polestarxu 2006-11-24
  • 打赏
  • 举报
回复
把sqlca.sqlerrtext的提示弄出来看看。
lzheng2001 2006-11-24
  • 打赏
  • 举报
回复
1. oledb对数据库访问要用上“MDAC(Microsoft Data Access Component,微软数据访问组件)"
标准嵌入MDAC的OS尽管只有Windows XP/2000和Windows Millennium Edition,但其他的Windows系统绝大多数都与IE等程序同时安装. 也就是说一般你的操作系统都会自带了这个组件,不需要你自己安装. 但也不排序某些原因导致你的系统没有安装,或者组件被删除,或者文件损坏之类,所以你可以试试重新安装这个组件.

2.也有可能是DLL的问题:
a.缺少DLL
b.查看system32目录下是否有 PB的DLL如果有,会与你的EXE目录下的DLL冲突,请删除!

AFIC 2006-11-24
  • 打赏
  • 举报
回复
不能连的错误提示是啥……
myvicy 2006-11-24
  • 打赏
  • 举报
回复
看以下sqlca.sqlerrtext的提示。
最好用DNS连接。

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧