我的做法: 启动线程前建立一个连接,在线程中操作数据库(用事务让系统自动去加锁)
如下:
UNIT test(LPVOID pParam)
{
...
con->BeginTrans();
//数据库操作
...
}
在主函数中:
//建立连接
for(int i=0;i<10;i++)
AfxBeginThread(test,连接);
...结果:
但是启动几个线程后出现错误:IDispatch error #52755(
无法在此会话中启动更 多的事务)。一个连接在同一时刻只能启动一个事务吗? 如果想在多线程中操作数据库,有那一些模式呢?
小弟的邮箱是[email protected]。请大哥大姐们多多指教!! 同时也感谢每一位读帖的朋友 ^_^.
如下:
UNIT test(LPVOID pParam)
{
...
con->BeginTrans();
//数据库操作
...
}
在主函数中:
//建立连接
for(int i=0;i<10;i++)
AfxBeginThread(test,连接);
...结果:
但是启动几个线程后出现错误:IDispatch error #52755(
无法在此会话中启动更 多的事务)。一个连接在同一时刻只能启动一个事务吗? 如果想在多线程中操作数据库,有那一些模式呢?
小弟的邮箱是[email protected]。请大哥大姐们多多指教!! 同时也感谢每一位读帖的朋友 ^_^.
http://www.csdn.net/expert/topic/799/799900.xml?temp=3.342837E-02
如果每个线程建立一个连接,
我测试了一下:
插入100条记录(每个线程插一条)用了3秒钟(我的机器
运行速度比较的慢)