Подвох.
QU.FreeHandle;
Привет. Вот ради интересу попробовал на последней версии FB2.0 и своих IBX
:
procedure TForm1.Button1Click(Sender: TObject);
begin
Db.Connected := True;
with TIBSQL.Create(nil) do begin
Transaction := Tr;
Database := Db;
Tr.StartTransaction;
SQL.Add('select * from t');
ExecQuery;
Close;
Tr.Commit;
Tr.StartTransaction;
SQL.Clear;
SQL.Add('drop table t');
ExecQuery;
Close;
Free;
Tr.Commit;
end;
Db.Connected := False;
end;
Все работает. А не может быть такого, что Fib-ы втихаря в другой
транзакции чего-нибудь из метаданных про эту табличку вытягивают и к
моменту drop table эта другая транзакция еще активна?
Не, ну ты же используешь 1 компонент, соответственно при изменении SQL
наступает:
procedure TIBSQL.SQLChanging(Sender: TObject);
begin
if Assigned(OnSQLChanging) then
OnSQLChanging(Self);
if FHandle <> nil then FreeHandle;
end;
:-)