请问能不能在程序一开始打开一个CDataBase,然后所有的CRecordSet共享这个CDataBase连接?
我在多个线程中通过同一个CDataBase打个相同的CRecordSet进行读写有没有什么问题?

解决方案 »

  1.   

    可以共用一个CDatabase,我也这样做过。
    也不需要线程同步,就象你说的,数据库会处理。
    (其实我什么忙也没帮)
      

  2.   

    CDataBase连接可以实现长连接,
    多个CRecordSet可以就使用这一个CDataBase,但是每个CRecordSet在操作完成后必须释放,
    必须捕获CDBException,不然会导致一个数据库连接占用的异常。
      

  3.   

    可以多个线程通过一个CDataBase取多个数据集,数据库自己会做出理,不会产生冲突,关于缓冲的问题也无需做太多的考虑,只要你的内存足够大就可以了。
      

  4.   

    兄弟姐妹们,原来是ORACLE的问题,SQORA32.DLL有BUG,换成ORACLE9I就没问题了,大家也试试,看我的判断是否属实。
    测试方法只要在多线程小同时访问一个数据库的一个或多个表,且表中记录要大于一万条。看看有何结果!