Regeln der Diagnosebehandlung
Die folgenden Regeln regeln die Diagnosebehandlung in SQLGetDiagRec und SQLGetDiagField.
Für alle ODBC-Komponenten:
Fehler oder Warnungen, die von einer anderen ODBC-Komponente empfangen werden, dürfen nicht ersetzt, geändert oder maskiert werden.
Fügen Sie möglicherweise einen zusätzlichen Statusdatensatz hinzu, wenn sie eine Diagnosenachricht von einer anderen ODBC-Komponente erhalten. Der hinzugefügte Datensatz muss der ursprünglichen Nachricht einen echten Informationswert hinzufügen.
Für die ODBC-Komponente, die direkt eine Datenquelle schnittstellen:
Muss dem Anbieterbezeichner, dem Komponentenbezeichner und dem Bezeichner der Datenquelle die Diagnosenachricht voranstellen, die er von der Datenquelle empfängt.
Muss den systemeigenen Fehlercode der Datenquelle beibehalten.
Muss die Diagnosenachricht der Datenquelle beibehalten.
Für jede ODBC-Komponente, die unabhängig von der Datenquelle einen Fehler oder eine Warnung generiert:
Muss den richtigen SQLSTATE-Wert für den Fehler oder die Warnung angeben.
Muss den Text der Diagnosenachricht generieren.
Muss dem Anbieterbezeichner und dessen Komponentenbezeichner die Diagnosenachricht voranstellen.
Muss einen systemeigenen Fehlercode zurückgeben, wenn ein Fehler verfügbar und aussagekräftig ist.
Für die ODBC-Komponente, die mit dem Treiber-Manager schnittstellen:
Muss die Ausgabeargumente von SQLGetDiagRec und SQLGetDiagField initialisieren.
Muss die Diagnoseinformationen beim Aufrufen dieser Funktion als Ausgabeargumente von SQLGetDiagRec und SQLGetDiagField formatieren und zurückgeben.
Für eine andere ODBC-Komponente als den Treiber-Manager:
- Muss den SQLSTATE-Wert basierend auf dem systemeigenen Fehler festlegen. Für dateibasierte Treiber und DBMS-basierte Treiber, die kein Gateway verwenden, muss der Treiber den SQLSTATE-Wert festlegen. Bei DBMS-basierten Treibern, die ein Gateway verwenden, kann entweder der Treiber oder ein Gateway, das ODBC unterstützt, sqlSTATE festlegen.