aId kann eigentlich, da es als Parameter der Funtione deklariert ist, nicht "null" sein.
versuche es mal so:
Delphi-Quellcode:
function GetFeldwertFromID(aTabelle, aFeld: string; aID: integer = 0): Variant;
var
MyQuery: TFDQuery;
begin
if aID = 0 then
exit;
MyQuery := TFDQuery.Create(nil);
try
myQuery.Connection := myDb;
if myQuery.Connection.Connected then
begin
if myQuery.FindField('GELOESCHT') <> Nil then
myQuery.SQL.Text := 'Select :aFeld from &aTabelle where ID = :aID '+
' and GELOESCHT = 0 '
else
myQuery.SQL.Text := 'Select :aFeld from &aTabelle where ID = :aID ';
myQuery.ParamByName('aFeld').AsString := aFeld;
//myQuery.ParamByName('aTabelle').AsString := aTabelle;
myQuery.MacroByName('aTabelle').AsString := aTabelle;
myQuery.ParamByName('aId').AsInteger := aId;
try
myQuery.Open; //--> hier tritt der Fehler auf
if myQuery.Recordcount = 0 then
Result := 'Kein Eintrag'
else
Result := myQuery.FieldByName(aFeld).AsString;
except
raise;
end;
end;
finally
myQuery.Close;
myQuery.Free;
end;
end;
Grüße
Klaus