多个TADOQuery同时连接同一个TADOConnection是有问题的。
但是如果你这样做,不会马上得出冲突错误,因为这个错误是偶发性的。
原因如下:
TADOQuery在和sql server建立连接时,才会需要调用TADOConnection,
而TADOConnection所做的,仅仅是在connection缓冲池中为TADOQuery分配
一个可用的connection,这个操作是很短时间就可以完成的了,之后
TADOConnection就可以为其他TADOQuery服务了。
也就是说TADOConnection的临界区是很短的一瞬间,只有多个TADOQuery同时
访问这一临界区,才会有冲突。
比如:query1使用ADOConnection读取一个很大的表,需要几分钟时间,在这期间
query2无论如何使用ADOConnection,都不会发生冲突。
总之要明白一点,无论多个ADOQuery是连接一个TADOConnection,还是连接多个
TADOConnection,在后台的ado的connection缓冲池中,都是每个ADOQuery对应
一个connection的。