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