Einzelnen Beitrag anzeigen

Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#17

AW: Query = nil nach Query.open...aber nicht immer

  Alt 13. Jan 2016, 18:00
nicht hübsch und nicht spannend:

Delphi-Quellcode:
function TDataModule1.OpenCommand(query : string;field:string;var value: string; firstrecord : boolean = True) : boolean;
begin
  query1.close;
  query1.sql.clear;
  query1.sql.add(query); // hier ist es noch ok
try
  value := '';
  query1.Open; // hier auch noch
  if query1.RecordCount > 0 then // rumms.....
  begin
    if not firstrecord then
      query1.last;
    value := query1.fieldbyname(Field).AsString;
  end;
  query1.close;
  result := true;
except
  query1.close;
  result := false;
end;
end;
aber wie schon gesagt: es funktioniert nicht prinzipiell nicht sondern nur manchmal!

Ich würde auf Recordcount nicht abfragen, dass kann nur in die Hose gehen.


Wie wäre es mit....
Delphi-Quellcode:
function TDataModule1.OpenCommand(query : string;field:string;var value: string; firstrecord : boolean = True) : boolean;
var
  aQuery : TQuery;
begin
  Result := False;
  value := '';
  aQuery := TQuery.Create(nil);
  try
    try
      aQuery.Database := XYZ
      aQuery.sql.text := query;
      aQuery.Open;
      if not aQuery.Eof then
      begin
        if not firstrecord then aQuery.last;
        value := aQuery.fieldbyname(Field).AsString;
        Result := True;
      end
      else
      begin
        Value := 'Keine Ergebnismenge!'
      end;
      aQuery.Close;
    except
      On e.Exception .....
    end;
  finally
    aQuery.Free
  end;
end;

Geändert von ibp (14. Jan 2016 um 07:29 Uhr) Grund: Tippfehler
  Mit Zitat antworten Zitat