◎◎◎◎◎◎大家讨论:在多线程中,出现“连接占线,导致另一个命令”是怎么回事呀?多谢!!在线等!◎◎◎◎◎◎

fansnaf 2004-12-06 09:06:04
rt.
原来线程和主程序都是利用一个adoconnection的,出现“连接占线,。。。”,看了一些贴子,说是可能由于线程和主程序的一个adocon导致的,就在线程里又加了一个adoconnection,结果还是会出现这样的错误,错误随机出现,不是每次都有的,请各位大侠襄助,多谢!!:)
...全文
356 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2005-01-13
  • 打赏
  • 举报
回复
明明是赖着不结贴,,呵呵。偏偏说成老贴新顶。。。
fansnaf 2005-01-10
  • 打赏
  • 举报
回复
老贴新顶,:)
tengjian1981 2004-12-29
  • 打赏
  • 举报
回复
up
fansnaf 2004-12-29
  • 打赏
  • 举报
回复
ding
fansnaf 2004-12-20
  • 打赏
  • 举报
回复
up
psp2003 2004-12-13
  • 打赏
  • 举报
回复
顶一把
fansnaf 2004-12-13
  • 打赏
  • 举报
回复
up
wfhlxl 2004-12-08
  • 打赏
  • 举报
回复
i am honest,i say maybe,
you can read msdn 98 read ado 1.5-2.0 help article,about reocrdset.open ....
it's was write in chinese.
fansnaf 2004-12-08
  • 打赏
  • 举报
回复
如果是多个数据库,多个adoquery的话动态创建就麻烦了,:(
to wfhlxl() :能否详细谈谈?
wfhlxl 2004-12-08
  • 打赏
  • 举报
回复
up
maybe cursortype locktype
XXSingle 2004-12-08
  • 打赏
  • 举报
回复
动态创建ADOQuery,并且使用ADoquery.connectionstring的连接方式
ADOQuery用完就放,
估计这样较好
halfdream 2004-12-07
  • 打赏
  • 举报
回复
你可以把多个东西扔进一个数据模块。。
在线程执行时候,动态创建这个数据模块。
fansnaf 2004-12-07
  • 打赏
  • 举报
回复
但是线程里用到了多个adoconnection,并且有多个adoquery,不是要每一个都指定他的connection吗?有什么好的方式?多谢1
主要是用来在不同的数据库中同步数据用的
halfdream 2004-12-07
  • 打赏
  • 举报
回复
刚才已经说了不要用synchronize方式执行数据库操作,这一点首先你要做到。
然后,在你的每个线程动态创建ADOCONNECTION,这才是属于线程的ADOCONNECTION。
决不要在主线程创建而在工作线程使用。
还有。。ADO PROVIDER 最好不要再通过ODBC了。
fansnaf 2004-12-07
  • 打赏
  • 举报
回复
adoconnection不是在线程内创建的,是在datamodule中创建的,线程有自己的adoconnection,但还是抱错呀,怎么处理亚?
halfdream 2004-12-07
  • 打赏
  • 举报
回复
线程中不要用synchronize方式执行数据库操作。

天行归来 2004-12-07
  • 打赏
  • 举报
回复
可以直接用主线程的connection,然后分线程通过同步出去就可以了。楼上也有人提出这种观点。
如果在线程内部动态创建,最好加上 CoInitialize。
qi7 2004-12-07
  • 打赏
  • 举报
回复
我的程序也出现过,不过为每个线程动态创建了一个adoconnection就解决了。
不知道还会有什么情况?
XXSingle 2004-12-06
  • 打赏
  • 举报
回复
如果确保每一线程拥有独立的adoconnection,还出现这问题估计与驱动有关
fansnaf 2004-12-06
  • 打赏
  • 举报
回复
ding
加载更多回复(6)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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