我的做法:     启动线程前建立一个连接,在线程中操作数据库(用事务让系统自动去加锁)
     如下:
     UNIT test(LPVOID pParam)
     { 
         ...
         con->BeginTrans();
         //数据库操作
         ...
      }
     
     在主函数中:
     //建立连接
     for(int i=0;i<10;i++)
        AfxBeginThread(test,连接);
      ...结果:
    但是启动几个线程后出现错误:IDispatch error #52755(
    无法在此会话中启动更 多的事务)。一个连接在同一时刻只能启动一个事务吗?    如果想在多线程中操作数据库,有那一些模式呢?
    小弟的邮箱是[email protected]。请大哥大姐们多多指教!!    同时也感谢每一位读帖的朋友 ^_^.

解决方案 »

  1.   

    多线程操作数据库,每个线程开始都要调用afxoleinit
      

  2.   

    大家来看一看这个:
    http://www.csdn.net/expert/topic/799/799900.xml?temp=3.342837E-02
      

  3.   

    我用的数据库是 SQL SERVER 7。0 ,
     如果每个线程建立一个连接,
     我测试了一下:
          插入100条记录(每个线程插一条)用了3秒钟(我的机器
          运行速度比较的慢)