H
hsj
Unregistered / Unconfirmed
GUEST, unregistred user!
以下是非常简单的测试代码。先插入数据,然后打开,然后再修改。
如果我连接的数据库是Oracle的话,那么上面的代码没有什么问题,但是我连接的如果是SQL Server的话,那么在Query3执行的时候就会一直停在ExecSQL操作上,——显然Query2的操作锁住了表格c_move_list。
如果在Query2的Open之后,再紧跟Close,问题也没有。再如果把Query换成ADOQuery,Database换成ADOConnection的话也没有这个问题。希望得到高手的指教。
代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Database1.StartTransaction;
with Query1 do
begin
SQL.Text:='insert into c_move_list(case_no,doc_no,city_unit) '
+' values(100,100,''aaaaaaaaaaaa'')';
ExecSQL;
end;
with Query2 do
begin
SQL.Text:='select * from c_move_list';
Open;
end;
with Query3 do
begin
SQL.Text:='update c_move_list set city_unit=''kdkdkdkd'' where case_no=100';
ExecSQL;
end;
Database1.Rollback;
end;
如果在Query2的Open之后,再紧跟Close,问题也没有。再如果把Query换成ADOQuery,Database换成ADOConnection的话也没有这个问题。希望得到高手的指教。