Original von der Antwort vom Dmitry.
At first it is too old FireDAC version …
This probably is not because
BDE and FireDAC are used in the same application.
Many possible reasons:
* consequence of some incorrect multy-threading;
* incorrect use of FireDAC in a
DLL;
* some FireDAC connection or
query object is not released;
* some FireDAC incorrect usage leading to a bug in FireDAC.
---
Also irrte ich mich bezüglich
BDE und FireDAC gemeinsam in einer Anwendung zu verwenden geht offensichtlich. Ist mal kein Schaden. An sich kann man das ausschließen was das Experiment mit dem neu sortieren der Statements schon zeigte.
Hallo zusammen,
wir sind gerade dabei unsere Delphi 7 Anwendung von der
BDE Komponente auf die AnyDAC 8.0.5 (FireDAC) Komponente umzustellen...
Während der Umstellungsphase verwenden wir in unserer Anwendung beide Komponenten. Das heißt für die
BDE Datenbankverbindung verwenden wir eine
TDatabase und für die AnyDAC (FireDAC) Datenbankverbindung verwenden wird die
TADConnection.
Im Event OnCloseQuery der Hauptform werden die Datenbankverbindungen geschlossen:
Code:
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
[...]
try
BDEConnection.Connected := False;
except
on e:
exception do
MessageDlg('BDEConnection' + #13#10 + e.message, mtError, [mbOK], 0);
end;
//--------------------------------------------------------------------
try
dacConnection.Connected := False;
except
on e:
exception do
MessageDlg('dacConnection' + #13#10 + e.message, mtError, [mbOK], 0);
end;
[...]
end;
Beim schließen der AnyDAC (FireDAC) Datenbankverbindung erhalten wir die folgende
Exception:
Zitat:
[FireDAC][Phys]-334. ADPhysManager shutdown timeout. Possible reason: application has not released all connection interfaces
IMHO sollten alle Queries, Tables, Transaktionen, etc. geschlossen sein...
Hat jemand schon mal diesen Fehler? Oder eine Idee woher der Fehler kommen könnte?
Edit: Die Exception erhalten wir nicht immer! Bisher konnten ich leider nicht nachvollziehen wann der Fehler auftritt!