文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » SQL Server应用开发 » 多线程操作数据库老有冲突       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [求助] 多线程操作数据库老有冲突  ( 查看:353  回复:1 )   
 
wenyixin
新新人类  点击可查看详细



帖子 37
精华 0
无忧币 87
积分 133
阅读权限 20
注册日期 2007-9-17
最后登录 2007-12-2 离线

[查看资料]  [发短消息]  [Blog
       
发表于: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认证?
2007-9-17 16:021楼
[ 顶部 ]
 
xingd
副版主  点击可查看详细



帖子 50
精华 0
无忧币 290
积分 50
阅读权限 140
来自 (保密)
注册日期 2007-9-12
最后登录 2008-7-23 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-9-19 16:36 
多个线程没有共享db_rssinsert结构吧。



【MVP】马上申请成为“微软最有价值专家”
2007-9-19 16:362楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号