Einzelnen Beitrag anzeigen

Humbucker

Registriert seit: 8. Feb 2013
Ort: im Lahntal
28 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Fehlermeldung beim Zugriff auf die Datenbank

  Alt 3. Feb 2022, 12:38
Hallo Forum,

dank eurer vielen Kommentare und Anregungen habe ich den Code nun folgendermaßen angepasst:

Delphi-Quellcode:
function GetFeldwertFromID(aTabelle, aFeld: string; aID: integer): Variant;
var
  MyQuery: TFDQuery;
begin
  Result := StrKeinEintrag;
  MyQuery := TFDQuery.Create(MyDB);
  try
    MyQuery.Connection := MyDB;
    if (MyQuery.Connection.Connected) and (aID > 0) then
    begin
      with MyQuery do
      begin
        SQL.Text := 'select * from &pTabelle where ID = :pID';
        MacroByName('pTabelle').asRaw := aTabelle;
        ParamByName('pId').asInteger := aId;
        try
          open;
          if not (FieldByName(aFeld).IsNull) and
            not (FieldByName(aFeld).asString.IsEmpty) and
            (Recordcount > 0) and
            ((FindField('GELOESCHT') = nil) or (Locate('GELOESCHT', 0, []))) then
              Result := FieldByName(aFeld).AsString;
        except
          raise;
        end;
      end;
    end;
  finally
    MyQuery.Close;
    MyQuery.Free;
  end;
end;
Die ursprüngliche Fehlermeldung aus #1 bleibt aber weiterhin bestehen. Wie gesagt, die Fehlermeldung kommt nur in Verbindung mit einer Microsoft Access Datenbank und auch nur einmal beim ersten Druchlauf.

Was mich übrigens noch interessieren würde ist:
Und wieder mal ein with und keiner sagt was. Das ist eine Art von Schreibfaulheit die früher oder später zu sehr schönen Fehlern führen wird.
Was ist an WITH so "schlimm"? Welche Fehler treten durch WITH auf?

Gruß Michael
Michael H.
  Mit Zitat antworten Zitat