以前做数据库(MIS)使用ADO不觉得有问题,很好用。但是现在做服务端程序时需要操作数据库,再次使用ADO操作数据库,感觉很不爽:
1、ADO内部经常莫名其妙的断言(我肯定是ADO内部的断言,因为我的程序在出现断言时一样正常运行,包含许多线程。)。
2、出现断言的时间不确定,可能几个小时后,可能几天后。
我使用ADO的方式如下:
一个函数里(程序运行到结束都存在){
    ADO连接
    while(1){
        接收网络数据
        操作数据库
    }
}
就这么简单。
大家帮我看看,哪儿出毛病了,谢谢!

解决方案 »

  1.   

    你做了自动重连吗?
    假如网线掉了,又接好了,你的程序会dump吗?
      

  2.   

    我应该先问下:
    你的ADO连接是一直连着的?还是有数据的时候再来连,连完后再释放?如果是一直连着的,你上面的问题,我也遇到过。
    我是每隔一秒访问DB一下,大概过几天就会挂掉,我后来改变的这样的方式。
    就是说我原因还是没找到
    但有1个可能
    你一个程序里面是否有两个以上一直连在数据库上的连接,并且他们会出现在不同的线程中吗?
      

  3.   

    我是ADO新手,有很多问题!
    希望高手留个联系方式!
    小弟QQ :29085550
      

  4.   

    可以使用一些开源的库,boost 是比较出名的, 也还有其他一些
      

  5.   

    这不是库的问题?ADO操作数据库的使用还是简单.
    我觉得是不知道如何好的使用ADO.
      

  6.   

    你应该用一个ADO连接,并且一直连接着,不断开的方式。
    如果多个线程都要操作数据库的话(也就是多个线程都会用到这个连接)
    建议还是用同步的方式来处理一下这个连接,比如EnterCriticalSection,LeaveCriticalSection 不要用多个连接。。