Подвох.
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;

:-)

Reply via email to