Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

ADO-Fehler (bestehend aus mehreren Schritten) anzeigen

  Alt 24. Jun 2004, 10:59
Bei der Arbeit mit ADO-Komponenten hat man manchmal das Problem, dass Exceptions eine ungenaue
Fehlerbeschreibung liefern (Fehler bei einem aus mehreren Schritten bestehenden Vorgang ...).

Abhilfe schafft dann folgende Vorgehensweise:
Delphi-Quellcode:
try
  ADOQuery1.Open; // hier wird die Exception erzeugt
except
  On E:Exception do
  begin
    // die Message der Exception wird angereichert um zusätzliche Informationen
    E.Message := E.Message + #13#10+ GetAllADOErrors(ADOQuery1.connection);
    // die Exception wird erneut ausgelöst
    Raise;
  end;
end;
Und hier nun die Hilfsfunktion GetAllADOErrors:
Delphi-Quellcode:
uses ..., ADOInt; // wird benötigt wegen Zugriff auf die Errors-Collection

{**************************************************************************
* NAME:    GetAllADOErrors
* DESC:    Alle Fehler einer ADO Connection als String zurückgeben
* PARAMS:  cn => die ADO Connection
* RESULT:  alle Fehlermeldungen aus der Errors-collection
* CREATED: 28-08-2002/shmia
*************************************************************************}

function GetAllADOErrors(cn: TADOConnection):string;
var
  i : Integer;
  e : ADOInt.Errors;
begin
  e := cn.ConnectionObject.Errors;
  for i := 0 to e.Count-1 do
  begin
    Result := Result +
      Format('#%d %s'#13, [e.item[i].Number, e.Item[i].Source]) + #13
      + e.Item[i].Description+#13+
      e.Item[i].SQLState+#13;
  end;
end;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
Andreas
  Mit Zitat antworten Zitat