wenyixin
新新人类
帖子
37
精华
0
无忧币 87
积分 133
阅读权限 20
|
发表于:2007-9-17 16:02
标题:多线程操作数据库老有冲突
<上一帖 |
下一帖>
各位大侠,我的序主要是用多线程对sql 2000读写操作。可是一开多线程就报读写冲突错误,直接死掉。要是只开单线程就没问题。对数据库的操作就只是select 和 insert。
没办法我只能给每个线程都建立一个对数据库的链接句柄,共5个线程,我建立了5个连接。一运行就报读写错误。
我试过5个线程共享一个连接句柄,可是那样select的时候经常查询失败。我将关于数据库的函数贴在下面,各位帮忙看看为什么总是报读写错误吧。太谢谢啦。
bool dbinsert_rss(string rssname)
{
RETCODE retcode = 0;
char sql[400];
string _s = "";
memset(sql, 0 ,400);
sprintf(sql,"insert into %s(rssname) values('%s')","rss",rssname.c_str());
dbcmd(db_rssinsert, sql);
dbsqlsend(db_rssinsert);
retcode=dbsqlok(db_rssinsert);
retcode = dbresults(db_rssinsert);
if(retcode == FAIL)
return false;
return true;
}
查询的操作就是简单的"select * from rss with(nolock)"
我是给每个线程都分配了一个数据库连接句柄,为什么多线程同时开就报错呢?
|
 网络工程师到底该不该去考CCIE认证? |
|