ADO是否支持多线程?

billik 2003-04-01 11:34:43
在用C++开发SQL Server中,一个ADO对象是否可以同时被多个线程引用?
如果可以,最大量是多少?
...全文
100 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
周围走 2003-04-22
  • 打赏
  • 举报
回复
1。程序启动,建立一个ADO的connection
2。创建线程池,如果有数据要处理,则引用上面的connection
3。程序退出,close connection
当然可以!
你的问题不是多线程问题,是一个连接对象被多个ADO对象引用.
billik 2003-04-22
  • 打赏
  • 举报
回复
up
billik 2003-04-22
  • 打赏
  • 举报
回复
大家都知道建立一个connection是需要花费很多时间时间的,尤其是在频繁的小数据量处理中。

我的程序设计思路是这样的:
1。程序启动,建立一个ADO的connection
2。创建线程池,如果有数据要处理,则引用上面的connection
3。程序退出,close connection

这样不行吗?
w_rose 2003-04-20
  • 打赏
  • 举报
回复
你的程序很可能一会能运行,一会又会报告“已经被使用,必须close”之类的错误。
w_rose 2003-04-20
  • 打赏
  • 举报
回复
好久没接触过ADO了!

做是可以这样做,但是这个对象应该不是“线程安全的”,也就是你这样做的程序可能经常出(运行时)故障,即使不出故障得到的运行结果也可能“莫名其妙”会乱。

独立声明connection并且各自打开各自的连接不好吗?
billik 2003-04-19
  • 打赏
  • 举报
回复
可能我没有表达清楚

我的意思是先创建ADO的Connection(因为Connection是很占用时间的),然后在应用程序中,多个线程同时调用这个connection,进行数据操作,是否这样做可以?

如果多个线程不能同事调用(引用)一个ADO的Connection(就是一个线程只能调用一个ADO的Connection),只好做Connection的Pool了。
doudouniwan 2003-04-19
  • 打赏
  • 举报
回复
ado不是多线程的,他是每次都创建他的一个实例,进行引用。

ok
w_rose 2003-04-19
  • 打赏
  • 举报
回复
Sorry!

受到一些人的干扰,我把 ADO 看成 DAO 了!

ADO 如果是通过 ODBC 来完成的,其本身当然是多线程的。
w_rose 2003-04-19
  • 打赏
  • 举报
回复
即使是不同进程(不同的exe程序)使用ADO,这些程序也必须在ADO面前排队,ADO要处理完一个查询才会处理下一个。这对于本地数据库处理是非常精简快捷的,对于网络则由于数据锁碰撞(很高)问题变得非常低效。
w_rose 2003-04-19
  • 打赏
  • 举报
回复
“用C++开发SQL Server”是什么意思呢?

ADO引擎本身是单独线程的,即使你用多个线程每一个分别创建自己的对于ADO的引用,你的机器上的ADO引擎其实是独立的“进程外服务器”,而且它是单线程的。

或许最新的 ADO 有所改变。你按我的思路去查一下资料吧!
billik 2003-04-18
  • 打赏
  • 举报
回复
多个线程同事用一个ADO是否会出现问题?
billik 2003-04-16
  • 打赏
  • 举报
回复
最大支撑多少个?
benxie 2003-04-02
  • 打赏
  • 举报
回复
VB好像是可以吧。
C不太清楚。
jimmyxing 2003-04-02
  • 打赏
  • 举报
回复
支持。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧