我的一段程序:with AdoQuery1 do
begin
   Close;
   Sql.Clear;
   Sql.Add('update table1 set field1=:p1 where field2=:p2');
   Parameters.ParamByName('p1').value:=1;
   Parameters.ParamByName('p2').value:=Edit1.text;
   try
     Execsql;
   finally
     Close;
   end;
end;执行后从SQL Server监测端发现,Table1被加了锁,无法释放,造成另外一个事务使用Table1时失败。如果用事务,就没此问题,请问高手,在上面的程序中,Update执行完成后,已用try..finally将Adoquery1关闭了呀,为什么Table1还加了锁呢?难道这么简单的一句更新,还非得用事务不可吗?