很多线程创建的ADOQuery连接同一个ADOConnection对数据库进行操作的问题(50分)

  • 主题发起人 asnychen
  • 开始时间
A

asnychen

Unregistered / Unconfirmed
GUEST, unregistred user!
ADOConnection连接SQL时,如果同时用很多个线程上创建的ADOQuery连接同一个ADOConnection对数据库进行查询时,他们是怎么进行的,ADOConnection会对这些ADOQuery的请求按照先后顺序排队进行数据库操作吗?
 
这要取决于数据库服务器/ado连接的数据库类型,如果是基于文件的数据库就是自动按先后顺序,还取决于执行的查询的锁定关系,如果前一操作(线程A)不影响后一操作执行,那么宏观上后一操作是会得到执行的(A线程被操作系统分配的时间片没有结束,并且数据库没有完全返回值,后一操作是可以得到结果的--cpu将时间片分配给了b线程), 网络数据库同理,只是在性能上更好,如果是自写的文件数据库,没有这种功能的话,当然就是顺序执行的了.
 
那意思就是说,我连接SQL数据库,可能出现程序同时操作I/O接口,造成未知的错误。。。
就好像多线程不进行同步操作数据库一样,是这样吗
 
接受答案了.
 
顶部