在平时写C/S结构的系统时,在客户端数据不是特别大的环境中(比如<50个),对于客户端ADO的连接方案,很多朋友都是采取以下:(其实我自己也是)
·客户端应用程序启动时,建立ADO连接
·程序结束时,断开并释放ADO连接。这种连接方案的效果是显而易见的,ADO连接在程序的运行周期内只需建立一次,减少了频繁建立连接所造成的开销。
----------------------------------------------------------------------------------------------
若在客户端程序运行期间,ADO异常断开(引发的原因如网络中断或服务器异常等…)的情况下,执行客户端读写数据库的功能时,将会产生错误...对于这种情况可以通过ADO.Connection.State属性来判断ADO的当前连接情况,如 If connn.state<>adStateOpen then
msgbox "数据库连接已经断开,请关闭窗口,重新登入!",vbinformation,"连接无效!"
Unload Me
End If 在实现工程中,我通常是这样处理这类异常的:
1.在所有的涉及数据库操作的任务中,前置上述代码判断,连接不可用则向用户提示.(缺点: 太多过程中要用到此判断代码...)
2.后置的方式:
on error goto ErrorH:
...
数据库操作相关的代码
... ErrorH:
...
----------------------------------------------------------------------------------------------
上述的方法,虽然可以实现功能,但个人感觉也不是特别理想。希望各位隐身的高手批评指正..现向各位公开征集一下这方面的处理方案,以为交流学习,也为后来者提供参考。欢迎各位顶贴..谢谢!
好的VB开源代码太少...大家都在闭门造车啊..郁闷! 准备把自己的三层结构的C/S系统完全共享出来...(绝对商业软件,不过得把它先卖掉后,嘿嘿!)
·客户端应用程序启动时,建立ADO连接
·程序结束时,断开并释放ADO连接。这种连接方案的效果是显而易见的,ADO连接在程序的运行周期内只需建立一次,减少了频繁建立连接所造成的开销。
----------------------------------------------------------------------------------------------
若在客户端程序运行期间,ADO异常断开(引发的原因如网络中断或服务器异常等…)的情况下,执行客户端读写数据库的功能时,将会产生错误...对于这种情况可以通过ADO.Connection.State属性来判断ADO的当前连接情况,如 If connn.state<>adStateOpen then
msgbox "数据库连接已经断开,请关闭窗口,重新登入!",vbinformation,"连接无效!"
Unload Me
End If 在实现工程中,我通常是这样处理这类异常的:
1.在所有的涉及数据库操作的任务中,前置上述代码判断,连接不可用则向用户提示.(缺点: 太多过程中要用到此判断代码...)
2.后置的方式:
on error goto ErrorH:
...
数据库操作相关的代码
... ErrorH:
...
----------------------------------------------------------------------------------------------
上述的方法,虽然可以实现功能,但个人感觉也不是特别理想。希望各位隐身的高手批评指正..现向各位公开征集一下这方面的处理方案,以为交流学习,也为后来者提供参考。欢迎各位顶贴..谢谢!
好的VB开源代码太少...大家都在闭门造车啊..郁闷! 准备把自己的三层结构的C/S系统完全共享出来...(绝对商业软件,不过得把它先卖掉后,嘿嘿!)
如果正常,直接返回.
以及
创建ADO连接的时机及生命周期...
1.报告错误信息,告诉客户网络断了
2.报告流程步骤,在哪里网络断了,操作无法进行
3.选择重新连接我是这样做的,看看大家的想法
要处理的时候连一下
看了一遍关于ADO优秀编程经验的文章,上面建议在客户端量少的情况下,保持ADO连接,以减少频繁建立连接的次数...原因是由于量少,从一开始就建立连接直到APP结束,提高了应用程序的性能
用一个统一的全局函数处理错误,通过err.number 来区分
比如err.number=7,就提醒用户内存不足了如果错误代码为以下之一:
-2147467259 -2147418113 -2147217871
刚提示连接失败,并尝试重连(也可以在重连失败后再提示,但注意用户已经等待了15或30秒,这里重连时超时时间可以设为1秒)。突出“网络或服务器”的问题,不然用户会怀疑你的程序-_-