SQLInstallerError-Funktion
Konformität
Version eingeführt: ODBC 3.0
Zusammenfassung
SQLInstallerError gibt Fehler- oder Statusinformationen für die ODBC-Installationsprogrammfunktionen zurück.
Syntax
RETCODE SQLInstallerError(
WORD iError,
DWORD * pfErrorCode,
LPSTR lpszErrorMsg,
WORD cbErrorMsgMax,
WORD * pcbErrorMsg);
Argumente
iError
[Eingabe] Fehlerdatensatznummer. Gültige Zahlen sind von 1 bis 8.
pfErrorCode
[Ausgabe] Fehlercode des Installers. (Weitere Informationen finden Sie unter Kommentare.)
lpszErrorMsg
[Ausgabe] Zeiger auf den Speicher für den Fehlermeldungstext.
cbErrorMsgMax
[Eingabe] Maximale Länge des szErrorMsg-Puffers . Dies muss kleiner oder gleich SQL_MAX_MESSAGE_LENGTH minus null-Beendigungszeichen sein.
cbErrorMsgMax
[Eingabe] Maximale Länge des szErrorMsg-Puffers . Dies muss kleiner oder gleich SQL_MAX_MESSAGE_LENGTH minus null-Beendigungszeichen sein.
pcbErrorMsg
[Ausgabe] Zeiger auf die Gesamtzahl der Bytes (mit Ausnahme des NULL-Terminierungszeichens), die in lpszErrorMsg zurückgegeben werden können. Wenn die Anzahl der zurückzugebenden Bytes größer oder gleich cbErrorMsgMax ist, wird der Fehlermeldungstext in lpszErrorMsgg in cbErrorMsgMax abgeschnitten, abzüglich der Null-Beendigungszeichenbytes. Das pcbErrorMsg-Argument kann ein NULL-Zeiger sein.
Gibt zurück
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA oder SQL_ERROR.
Diagnose
SQLInstallerError stellt keine Fehlerwerte für sich selbst bereit. SQLInstallerError gibt SQL_NO_DATA zurück, wenn keine Fehlerinformationen abgerufen werden können (in diesem Fall ist pfErrorCode nicht definiert). Wenn SQLInstallerError aus irgendeinem Grund nicht auf Fehlerwerte zugreifen kann, die normalerweise SQL_ERROR zurückgeben würden, gibt SQLInstallerError SQL_ERROR, aber keine Fehlerwerte aus. Wenn Sie die Länge der Warnungszeichenfolge (lpszErrorMsg) nicht kennen, können Sie lpszErrorMsg auf NULL festlegen und SQLInstallerError aufrufen. SQLInstallerError gibt dann die Länge der Warnungszeichenfolge in cbErrorMsgMax zurück. Wenn der Puffer für die Fehlermeldung zu kurz ist, gibt SQLInstallerError SQL_SUCCESS_WITH_INFO und den richtigen pfErrorCode-Wert für SQLInstallerError zurück.
Um zu bestimmen, ob in der Fehlermeldung ein Abschneiden aufgetreten ist, kann eine Anwendung den Wert im argument cbErrorMsgMax mit der tatsächlichen Länge des Nachrichtentexts vergleichen, der in das argument pcbErrorMsg geschrieben wurde. Wenn abgeschnitten wird, sollte die richtige Pufferlänge für lpszErrorMsg zugewiesen werden, und SQLInstallerError sollte mit dem entsprechenden iError-Datensatz erneut aufgerufen werden.
Kommentare
Eine Anwendung ruft SQLInstallerError auf, wenn ein vorheriger Aufruf der ODBC-Installerfunktion FALSE zurückgibt. Odbc-Installationsprogramm und -Treiber oder Übersetzer-Setupfunktionen werden nur dann nach null oder mehr Fehlern angezeigt, wenn die Funktion fehlschlägt (gibt FALSE zurück). Daher ruft eine Anwendung SQLInstallerError erst auf, wenn eine ODBC-Installationsprogrammfunktion fehlschlägt.
Die Fehlerwarteschlange des ODBC-Installers wird jedes Mal geleert, wenn eine neue Installationsprogrammfunktion aufgerufen wird. Daher kann eine Anwendung nicht erwarten, dass Fehler für andere Funktionen als für den letzten Aufruf der Installationsprogrammfunktion abgerufen werden.
Um mehrere Fehler für einen Funktionsaufruf abzurufen, ruft eine Anwendung SQLInstallerError mehrmals auf.
Wenn keine zusätzlichen Informationen vorhanden sind, gibt SQLInstallerError SQL_NO_DATA zurück, das PfErrorCode-Argument ist nicht definiert, das pcbErrorMsg-Argument gleich 0, und das lpszErrorMsg-Argument enthält ein einzelnes NULL-Terminierungszeichen (es sei denn, das Argument cbErrorMsgMax ist gleich 0).