Funzione SQLInstallerError
Conformità
Versione introdotta: ODBC 3.0
Riepilogo
SQLInstallerError restituisce informazioni sullo stato o sull'errore per le funzioni del programma di installazione ODBC.
Sintassi
RETCODE SQLInstallerError(
WORD iError,
DWORD * pfErrorCode,
LPSTR lpszErrorMsg,
WORD cbErrorMsgMax,
WORD * pcbErrorMsg);
Argomenti
iError
[Input] Numero di record di errore. I numeri validi sono compresi tra 1 e 8.
pfErrorCode
[Output] Codice di errore del programma di installazione. Per altre informazioni, vedere "Comments.")
lpszErrorMsg
[Output] Puntatore all'archiviazione per il testo del messaggio di errore.
cbErrorMsgMax
[Input] Lunghezza massima del buffer szErrorMsg . Deve essere minore o uguale a SQL_MAX_MESSAGE_LENGTH meno il carattere di terminazione Null.
cbErrorMsgMax
[Input] Lunghezza massima del buffer szErrorMsg . Deve essere minore o uguale a SQL_MAX_MESSAGE_LENGTH meno il carattere di terminazione Null.
pcbErrorMsg
[Output] Puntatore al numero totale di byte (escluso il carattere di terminazione Null) disponibile per restituire in lpszErrorMsg. Se il numero di byte disponibili per la restituzione è maggiore o uguale a cbErrorMsgMax, il testo del messaggio di errore in lpszErrorMsg viene troncato a cbErrorMsgMax meno i byte dei caratteri di terminazione Null. L'argomento pcbErrorMsg può essere un puntatore Null.
Resi
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA o SQL_ERROR.
Diagnostica
SQLInstallerError non pubblica automaticamente i valori di errore. SQLInstallerError restituisce SQL_NO_DATA quando non è in grado di recuperare informazioni sull'errore( nel qual caso pfErrorCode non è definito). Se SQLInstallerError non riesce ad accedere ai valori di errore per qualsiasi motivo che normalmente restituisce SQL_ERROR, SQLInstallerError restituisce SQL_ERROR ma non pubblica valori di errore. Se non si conosce la lunghezza della stringa di avviso (lpszErrorMsg), è possibile impostare lpszErrorMsg su NULL e chiamare SQLInstallerError. SQLInstallerError restituirà quindi la lunghezza della stringa di avviso in cbErrorMsgMax. Se il buffer per il messaggio di errore è troppo breve, SQLInstallerError restituisce SQL_SUCCESS_WITH_INFO e restituisce il valore pfErrorCode corretto per SQLInstallerError.
Per determinare se si è verificato un troncamento nel messaggio di errore, un'applicazione può confrontare il valore nell'argomento cbErrorMsgMax con la lunghezza effettiva del testo del messaggio scritto nell'argomento pcbErrorMsg . Se si verifica un troncamento, la lunghezza corretta del buffer deve essere allocata per lpszErrorMsg e SQLInstallerError deve essere chiamata nuovamente con il record iError corrispondente.
Commenti
Un'applicazione chiama SQLInstallerError quando una chiamata precedente alla funzione del programma di installazione ODBC restituisce FALSE. Il programma di installazione ODBC e le funzioni di installazione del driver o del traduttore post-zero o più errori solo quando la funzione ha esito negativo (restituisce FALSE); pertanto, un'applicazione chiama SQLInstallerError solo dopo un errore di una funzione del programma di installazione ODBC.
La coda degli errori del programma di installazione ODBC viene scaricata ogni volta che viene chiamata una nuova funzione del programma di installazione. Pertanto, un'applicazione non può aspettarsi di recuperare errori per le funzioni diverse dall'ultima chiamata di funzione del programma di installazione.
Per recuperare più errori per una chiamata di funzione, un'applicazione chiama SQLInstallerError più volte.
Quando non sono presenti informazioni aggiuntive, SQLInstallerError restituisce SQL_NO_DATA, l'argomento pfErrorCode non è definito, l'argomento pcbErrorMsg è uguale a 0 e l'argomento lpszErrorMsg contiene un singolo carattere di terminazione Null (a meno che l'argomento cbErrorMsgMax sia uguale a 0).