Einzelnen Beitrag anzeigen

idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#10

AW: Exception bei leerem Result

  Alt 29. Jun 2010, 08:37
Leider ist es nicht so. Ich glaube ich habe oben ziemlich genau beschrieben, was das Problem ist. Ich bekomme die Exception schon beim Ausführen der Query, noch bevor ich irgendwelche Daten mittels Fetch hole. Aber sogar das sollte möglich sein, in den von UIB mitgelieferten Demoprogrammen (der einzigen "Dokumentation") ist die Konstruktion

Delphi-Quellcode:
    (* Prepare the statement. *)
    try
      UL.DSQLPrepare(DB, trans, stmt, sel_str, SQL_DIALECT, sqlda);
    except
      on E: Exception do
      begin
        WriteLn('Error: ',E.Message);
        ReadLn;
        raise;
      end;
    end;

    (* Execute the statement. *)
    UL.DSQLExecute(trans, stmt, SQL_DIALECT, nil);

    (*
    *    Fetch and print the records.
     *)

    while UL.DSQLFetch(DB, trans, stmt, 1, sqlda) do
      Writeln(format('%s %s %s', [sqlda.AsString[0], sqlda.AsString[1], sqlda.AsString[2]]));
d.h. laut diesem UIB-DemoProgramm sollte, wenn keine Daten mehr da sind, einfach fetch den Wert false liefern.

Das ganze passiert nicht in Verbindung mit einer Query-Komponente, sondern ich verwende nur die Basisunit "UIBLib", das ist eine Unit, die ein paar Klassen zur direkten Verwendung der Firebird API zur Verfügung stellt. Das Statusergebnis <> 0, das "schuld" an der Auslösung der Exception in der UIB Unit ist, kommt direkt aus der Firebird-DLL fbclient.dll beim Execute der Query zurück.

@heiko
Ja, progdigy ist wohl eher der richtige Platz, um die Frage zu stellen. Ich bin jetzt schon so gewohnt, dass hier auf so ziemlich alles eine brauchbare Antwort kommt
  Mit Zitat antworten Zitat