Hallo Forum,
erst mal danke für die Antworten.
Um den Fehler einzugrenzen, würde ich das
SQL-Statement vor dem Open kopieren und prüfen, ob das grundsätzlich korrekt ist. Am Besten in einem passenden
SQL-Editor ansehen und laufen lassen.
Das funktioniert einwandfrei. Ich verwende Microsoft
Access 365 und erzeuge hier eine
SQL-Abfrage:
Code:
Select * from Adresse where ID = 1.
- so wirklich nichts spektakuläres.
Zitat:
Was mir gerade noch einfällt:
Du weist die Connection in der Routine zu. Ist die Connection denn aktiv? Meistens werden Connections durch ein auszuführendes
Query zwar implizit aktiv, aber erstens geht es hier um
Access und zweitens um einen
ODBC-Treiber. Es könnte also durchaus sein, dass die Connection noch gar nicht bereit, bzw. nicht schnell genug bereit ist. Das würde dann auch erklären, warum es nur beim ersten Durchlauf Probleme gibt.
Die FDConnection (MyDB) ist geöffnet und verbunden. In der Routine wird das auch überprüft.
Delphi-Quellcode:
MyQuery := TFDQuery.Create(MyDB);
try
MyQuery.Connection := MyDB;
if (MyQuery.Connection.Connected) and (aID > 0) then
begin
MyQuery.SQL.Text := 'select * from &pTabelle where ID = :pID';
MyQuery.MacroByName('pTabelle').asRaw := aTabelle;
MyQuery.ParamByName('pId').asInteger := aId;
try
MyQuery.open;
.....
except
raise;
end;
Das scheidet als Fehlerursache meines Erachtens aus. Zumal die Fehlermeldung auch keine
Exception auslöst, was bei einer nicht geöffneten Connection der Fall wäre.
VG Michael
Michael H.