H
hongsen
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了如下的代码,在两个DELPHI集成开发环境下同时调试。我将SELECT语句加锁选项设为TABLOCKX(排它表锁)
此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
当我单步执行到ADOQuery1.open时,应该后一个执行的程序被阻塞,从而产生Timeout expired异常。为什么我没有产生
这样的异常?
ADOConnection1.BeginTrans;
try
ADOQuery1.Close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add('select * from orders TABLOCKX');
ADOQuery1.open;
ADOConnection1.CommitTrans;
except
on e:exception do
showmessage(e.Message);
end;
此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
当我单步执行到ADOQuery1.open时,应该后一个执行的程序被阻塞,从而产生Timeout expired异常。为什么我没有产生
这样的异常?
ADOConnection1.BeginTrans;
try
ADOQuery1.Close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add('select * from orders TABLOCKX');
ADOQuery1.open;
ADOConnection1.CommitTrans;
except
on e:exception do
showmessage(e.Message);
end;