数据库为什么会自动的断开阿?

robert126 2005-11-30 02:10:05
我用pb9.1 + sql server 2000作了个局域网的程序,我在应用下写的连接代码,按理说应该是在应用结束的时候断开和数据库的连接,但是不知道为什么,程序总是自己断开,只要过了一段的时间之后就会自动的断开,问了一些专业人士,有由他们不再我这里,电话了说的不是很清楚,我在南昌,他们也是无能为力,我希望兄弟姐妹们能够帮我分析一下原因,建议也好,经过路过千万不要错过!!!!
...全文
489 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
qudanghui 2005-12-15
  • 打赏
  • 举报
回复
robert126 你的QQ是什么?我现在还没解决这个问题了 能否说一下你的经验
robert126 2005-12-08
  • 打赏
  • 举报
回复
我已经节贴了为什么还没有出现分数阿
robert126 2005-12-04
  • 打赏
  • 举报
回复
再次谢谢 lzheng2001(1加1) 的鼎立相助
robert126 2005-12-04
  • 打赏
  • 举报
回复
代码没有做任何得变化,只不过是换了个小得hub和新得网线,问题解决,只不过是窗口得显示问题还在,不知道是什么原因,在打补丁前,我的显示是很好得,但是自从打了补丁,问题就来了,窗口不能正常得显示,希望有经验得兄弟姐妹门能给出个主意,我准备结贴,不能让出力得兄弟们说我不仁
qudanghui 2005-12-03
  • 打赏
  • 举报
回复
楼主的问题一直是捆饶我的问题,到现在已经做了三四个程序了,都有这样的情况。这个问题我已经在以前发过帖了。各位好心的网友都给我出了好多主意,可是还遇到了这个问题。如果哪位有更好的解决此问题的办法 请与我联系 我的QQ是190337472 各位如果真能解决这个问题,算是对我莫大的帮助谢谢了 楼主 也可在帖子中找一下我发的帖子,看一下各位网友的回复或许能找到一些灵感,等解决了,别忘了通知我
lzheng2001 2005-12-02
  • 打赏
  • 举报
回复
对于打补丁后的窗口问题,我认为应该与补丁没关,应该是你的源程序发生了改变吧,你自己查一下.
lzheng2001 2005-12-02
  • 打赏
  • 举报
回复
一般就是路由器与交换机的问题,最好就是换硬件,不会这点钱都花不起吧. 如果只有少数几台机出现的话,也有可能是网线质量的问题.

在需要时才连接的方法可以,但如果网络有问题的话,发生错误的可能性还是存在的.

或者用一种折衷的方法,就是每当需要访问数据库的时候检查一下当前连接是否有效,如果断开则马上重连.
把代码写成一个全局函数来调用
IF SQLCA.DBHandle() <= 0 THEN
f_write_log("连接意外中断")
DISCONNECT USING SQLCA;
CONNECT USING SQLCA;
END IF
robert126 2005-12-02
  • 打赏
  • 举报
回复
新的问题:(1) 打了补丁以后,我的mid窗口中显示的窗口本应该是占满mid的窗口的,可是打了补丁以后旧不能了,变成normal大小了,很难看,不知道有没有办法搞顶.
(2) 断开原因已经发现是:硬件的问题,网络有时候会自动断开,导致我的连接出问题,请问能不能向网页中的那样呢?什么时候使用数据库什么时候就在连接?这样的话就回降低对网络的依赖.不知道我的这个想法是不是可行?要是可行话,我应该怎么改动我的程序?再什么地方修该啊?
lzheng2001 2005-12-02
  • 打赏
  • 举报
回复
打补丁后安装目录下的DLL会被更新的,你把需要用的DLL复制过来给编译的EXE程序用就可以了. 需要什么DLL你应该很清楚吧
一手软一手硬 2005-12-01
  • 打赏
  • 举报
回复
http://blog.csdn.net/whchen/archive/2005/11/29/539177.aspx
lzheng2001 2005-12-01
  • 打赏
  • 举报
回复
你先试试用其它方式连接! 这个很重要,你把结果都说出来吧
lzheng2001 2005-12-01
  • 打赏
  • 举报
回复
1.你的连接方式是什么??
2.客户机上的SQL SERVER也要打上补丁
3.你是否在PB环境下运行? 把所有DLL都更新一次.
4.出现这种情况的机率有多大? 经常发性,还是偶尔发生?多长时间发生一次?

最大的可能性还是硬件问题! 你找不到原因的话就试试换硬件吧.





robert126 2005-12-01
  • 打赏
  • 举报
回复
lzheng2001(1加1) 对 入你所说 先是在客户端上显示 A SQLServer request resulted in a bad return code or status but no error message was returned 提示信息然后 在点击“ 刷新”按钮(就是重新检索数据) 的时候就会出现 DBPROCESS 处于不可用或未启用状态 这样的问题。 sql server 的补丁我打了没有什么用,不知道pb的补丁那里有?再者:我在服务器上也安装了客户端测试的时候 不会出现断开的现象(也就是说单机上不会出现问题!)
lzheng2001 2005-12-01
  • 打赏
  • 举报
回复
硬件方面:试试更换路由器,交换机, 如果断开情况只发生在少数的客户机上,把这些客户机的网线也换一下. 我觉得最大可能就是路由器,交换机

软件:如果你使用的是直连方式,有可能会出现断线现象,数据库返回的信息应该是
10005错误,DBPROCESS 处于不可用或未启用状态,尤其是用RPC方式调用存储过程时,更容易会发性这样的情况
这时你可试试用其它方式连接. 如果其它方式连接正常,可能是PB或sql server客户端直连的接口文件有问题,试试打补丁(PB及SQL SERVER客户端都要打,然后重新覆盖所有DLL文件).
如果用其它方式连接仍然有断开现象,还是检查一下网络硬件吧,这是最可能的情况.
robert126 2005-12-01
  • 打赏
  • 举报
回复
to lzheng2001(1加1) 我在客户端安装了sql server 2000 的是不是只要打上补丁就好了? 另外要把PB的补丁打上然后再把所有的DLL文件考出来 放在客户端 是不是就是完成了 sql server 2000和 PB 的 补丁升级? 我没有使用 ODBC 和oledb 连接我不会配置自动注册的odbc 回头我手工配置试一下。希望你能继续的帮我。谢谢先
lzheng2001 2005-12-01
  • 打赏
  • 举报
回复
1.软件方面试试安装补丁后,把安装后的DLL复制过来覆盖每个客户机上的DLL(包括PB的DLL及SQL SERVER的DLL都覆盖)

2.你有没有试过用其它连接方式,如ODBC,oledb? 如果用这两种方式连接有同样的错误的话,很可能就是硬件问题.

robert126 2005-12-01
  • 打赏
  • 举报
回复
lzheng2001(1加1) 我用的是.ini文件连接的就是pb 和sql server 2000 的专用接口。
说一下我现在的情况,我在服务器上安装了sql server 2000的补丁 但是没有在客户端安装,pb没有打补丁,我的客户端是在pb的虚拟机上运行的。这种情况出现的几率非常的高,基本上10分钟之内肯定回出现,我用了测试程序就是每阁一秒种就重新检索一下数据,在10分钟之内必定出现。我正在和他们协商更换硬件。很郁闷..........
robert126 2005-11-30
  • 打赏
  • 举报
回复
yeqiufeng(叶秋枫)

你说的网站上有补丁吗?
那里有补丁阿?能够解决吗?


: newskysoft(阿乌) 兄说的sqlserver 的补丁从哪里下载阿?
newskysoft 2005-11-30
  • 打赏
  • 举报
回复
我觉的打上操作系统尤其是sqlserver的补丁是正解
lzheng2001 2005-11-30
  • 打赏
  • 举报
回复
最大可能还是网络原因,先检查硬件吧,然后才是软件
加载更多回复(4)

752

社区成员

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

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