Zum Hauptinhalt springen

C16_DiagResults

C16_DiagResults(const vPHANDLE aInstHdl, vC16_DiagResult** aResults) : vERROR

Diagnoseergebnis auslesen

Details

info

Zur Durchführung der Diagnose müssen alle vier Funktionen verwendet werden, um einen definierten Zustand zu behalten. Während der Diagnose können keine anderen Datenbankoperationen der Programmierschnittstelle aufgerufen werden.

Diese Funktion gibt einen Zeiger auf das Ergebnis der Diagnose zurück. Zuvor muss der Befehl C16_DiagWatch() ausgeführt werden und die Diagnose beendet worden sein.

Im Parameter (aInstHdl) wird der von C16_InitInstance() bereitgestellte Instanz-Handle, der an die Funktion C16_OpenArea() zum Öffnen der Datenbank verwendet wurde, übergeben. In (aResults) muss die Adresse eines Zeigers auf eine vC16_DiagResult-Struktur übergeben werden.

Der Befehl gibt den Zeiger zurück, über den das Diagnoseergebnis ausgelesen werden kann. Das Diagnoseergebnis steht bis zum Aufruf der Funktion C16_DiagTerm() zur Verfügung. Ein Element der Tabelle enthält folgende Einträge:

typedef union
{
struct
{
vBYTE ResultType;
vBYTE ResultStatus;
vBYTE ErrorCode;
vBYTE KeyNo;
vWORD TreeNo;
vWORD FileNo;
vLONG Counter;
} r;

struct
{
vLONG ExtInfo1;
vLONG ExtInfo2;
vLONG ExtInfo3;
} x;
}
vC16_DiagResult;
  • Komponente: Beschreibung
  • r.ErrorCode: Fehlerwert
  • r.ResultType: Typ des Resultateintrages _DiagRes_End Ende der Tabelle _DiagRes_TreeCollision Baumkollision _DiagRes_FreeSpace Freie Speicherverwaltung _DiagRes_Tree Baumstruktur _DiagRes_Prime Prime-Counter _DiagRes_File Datei _DiagRes_Key Schlüssel _DiagRes_Time Dauer der Diagnose
  • r.ResultStatus: Art des Fehlers (Kombinationen sind möglich) 0 OK (kein Defekt) _DiagResF_Defect Defekt _DiagResF_Repaired Repariert _DiagResF_Collisions Kollision _DiagResF_RefError Abweichend _DiagResF_RefCorrected Korrigiert _DiagResF_Incomplete Unvollständig _DiagResF_Extensions weitere Informationen in der nächsten Zeile
  • r.KeyNo: Schlüsselnummer, wenn r.ResultType = _DiagRes_Key
  • r.TreeNo: Baumnummer, wenn r.ResultType = _DiagRes_Tree oder _DiagRes_Prime
  • r.FileNo: Dateinummer, wenn r.ResultType = _DiagRes_File oder _DiagRes_Key
  • r.Counter: Anzahl der Einträge

Ist in der Komponente ResultStatus der Wert _DiagResF_Extensions gesetzt, stehen erweiterte Informationen im nächsten Eintrag der Tabelle:

  • r.ResultType = _DiagRes_File
  • Komponente: Beschreibung
  • x.ExtInfo1: Anzahl der unvollständigen Sätze
  • x.ExtInfo2: Anzahl der gelöschten defekten Sätze
  • x.ExtInfo3: Anzahl der gelöschten Datensatzfragmente
  • r.ResultType = _DiagRes_Key
  • Komponente: Beschreibung
  • x.ExtInfo1: Anzahl der eingefügten Schlüssel
  • x.ExtInfo2: Anzahl der gelöschten Schlüssel
  • x.ExtInfo3: Anzahl der Wertekollisionen

Nach der Auswertung des Ergebnisses muss die Funktion C16_DiagTerm() aufgerufen werden.

Der Rückgabewert vom Typ vERROR beinhaltet entweder 0 (kein Fehler) oder einen negativen Fehlerwert (siehe Fehlerwerte ).

Der Rückgabewert kann mit folgenden Konstanten verglichen werden:

  • C16ERR_OK: Datenbank "OK"
  • C16ERR_DIAG_DEFECT: Datenbank "DEFEKT"
  • C16ERR_DIAG_REPAIRED: Datenbank "REPARIERT"
  • C16ERR_DIAG_CORRECTED: Datenbank "KORRIGIERT"
  • C16ERR_DIAG_MEMORY: Haupspeicher des Servers nicht ausreichend
  • C16ERR_DIAG_READ_ONLY: Datenbank ist Read-Only (nur bei Recover-Option)
  • C16ERR_DIAG_SEQUENCE: Aufruf vor dem Ende des Diagnoselaufes
  • C16ERR_DIAG_OTHER: sonstiger Fehler