社区
进程/线程/DLL
帖子详情
C++中ADO多线程访问数据库为何不好用?
達魔
2006-10-08 11:00:21
按照普通单线程的方式编写多线程的代码,为何在读取数据库数据库时出现?
ADO组件不支持多线程吗?
有的资料说用CoInitializeEx(NULL, COINIT_MULTITHREADED),可我加上之后仍然不好用啊.
...全文
422
6
打赏
收藏
C++中ADO多线程访问数据库为何不好用?
按照普通单线程的方式编写多线程的代码,为何在读取数据库数据库时出现? ADO组件不支持多线程吗? 有的资料说用CoInitializeEx(NULL, COINIT_MULTITHREADED),可我加上之后仍然不好用啊.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
尘雨
2006-10-10
打赏
举报
回复
另外在连接读取数据的时候。cursorlocation=adUseClient,如果是读数据最好用只读向前游标
尘雨
2006-10-10
打赏
举报
回复
多个线程如果共享一个Connection对象实例或者recordset,command,肯定会出现冲突,所以要么做好互斥的处理,要么在每个线程里使用各自的connection实例
或者创建和维护一个全局的连接池。依靠ADO内部的线程协调,是不可能的
達魔
2006-10-10
打赏
举报
回复
上面说的内容我之前全试过了,在这部分不会报异常,而且这是属于COM的多线程部分,再深一层涉及ADO的时候,如果并发取数就会出现问题,产生系统异常
尘雨
2006-10-09
打赏
举报
回复
你如果在新的线程里使用ADO对象,必须在这个线程里CoInitialize(NULL);
每个涉及ADO操作的线程都必须
CoInitialize(NULL);
不建议AfxOleInit();
suchunyuan
2006-10-09
打赏
举报
回复
ADO初始化代码放线程函数中...
BHW
2006-10-09
打赏
举报
回复
在app文件中的InitInstance函数中加入
#if _WIN32_WINNT >= 0x0400
HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);
#else
HRESULT hRes = CoInitialize(NULL);
#endif
数据库指针在线程类中定义,使每个线程都可以访问数据库
C++
使用
ADO
连接SQL Server
数据库
源代码
C++
使用
ADO
连接SQL Server
数据库
源代码,适合初学者,欢迎下载!可以在这基础上重新进行封装使用
VC_
多线程
的
访问
数据库
实例程序
多线程
的
访问
数据库
实例程序,对于大家学习VC
多线程
编程以及
多线程
在
数据库
方面的应用有点帮助吧!~
Visual
C++
2010开发权威指南.part06
第14章 Visual
C++
2010 MFC
多线程
第14章 程序设计 557 14.1 进程和
多线程
的概念 557 14.2 线程的创建 558 14.2.1 创建工作者线程 558 14.2.2 创建用户界面线程 559 14.3 线程的终止 560 14.4 设置线程的优先级 562 ...
Visual
C++
6.0完全自学
示例描述:学习Visual
C++
6.0提供的几
中
数据库
访问
技术。
Ado
DB 使用
ADO
技术
访问
数据库
。 ODBC 使用ODBC技术
访问
数据库
。 MySqlDB 使用原始API
访问
MySQL
数据库
。 第12章(\ 12-Chat) 示例描述:学习...
Visual
C++
编程技巧精选500例.pdf
188 如何实现
多线程
多任务? 189 如何使用临界区同步线程? 190 如何调用帮助文件(.chm)? 第10章 字符串 191 如何对字符串进行连接? 192 如何对字符串进行比较? 193 如何从字符串
中
存取字符? 194 如何计算一个字符串...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章