hur.cn - 华软网

 热门搜索

自动重新连接数据库

  作者:未知    来源:网络    更新时间:2018/12/6
请问大家,有没有措施实现当与数据库断线的时候,重新做连接尝试的例子吗??
我用的是Oracle,由于网络问题,经常断线。

------华软网友回答------
好像只有在timer里运行一个小查询,然后看结果了
------华软网友回复------
高深的技术:(
------华软网友回复------
每次访问数据库之前 用sqlca.dbhandle()来判断连接是否有效
如果无效重新连接数据库.

当然也能够用timer()来检查,但这样有机遇犯错.

------华软网友回复------
厉害!
------华软网友回复------
运用数据库时如果判断到没连接上数据库则调用数据库连接函数重新连接
------华软网友回复------
SQLCA.DBHandle没措施,前往值与掉线前是一样的,帮助里也说明了此招没法判断掉线
------华软网友回复------
SQLCA.DBHandle()>0 则连接有效. 掉线的时候这个值不会>0的.  

楼上说帮助里有说,贴出来一下吧,我怎么没见到?
------华软网友回复------
这是帮助里写的:DBHandle returns a valid handle only if you are connected to the database. It is not able to determine if the database connection does not exist or has been lost.
 而且我也尝试了,我在连接状态下尝试,再将网卡禁用,再尝试,sqlca.DBHandle()的前往值都一样,你再试试,我是指服务器端在远程的时候我尝试的

------华软网友回复------
判断sqlcode = -1 以后继续判断sqldbcode不就好了?
每一个数据库都是不同的,oracle的话,
28 your session has been killed
另有end of channel(号码忘了)
等等几个毛病都能够视为连接断了
写个choose case
然后disconnect;
再connect;一下不就好了?
------华软网友回复------
运用IsValid(sqlca)呢!
if not IsValid(sqlca) then
connect...
------华软网友回复------
这是帮助里写的:DBHandle returns a valid handle only if you are connected to the database. It is not able to determine if the database connection does not exist or has been lost.
 而且我也尝试了,我在连接状态下尝试,再将网卡禁用,再尝试,sqlca.DBHandle()的前往值都一样,你再试试,我是指服务器端在远程的时候我尝试的
=========================
好的,我再试试看! 如果真的不行,就只好用SQLCA.SQLCODE 来判断了. 但必需访问数据库才能有前往值.
------华软网友回复------
谢谢列位      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。