Funzione ConfigDriver
Conformità
Versione introdotta: ODBC 2.5
Riepilogo
ConfigDriver consente a un programma di installazione di eseguire funzioni di installazione e disinstallazione senza richiedere al programma di chiamare ConfigDSN. Questa funzione eseguirà funzioni specifiche del driver, ad esempio la creazione di informazioni di sistema specifiche del driver e l'esecuzione di conversioni DSN durante l'installazione, nonché la pulizia delle modifiche alle informazioni di sistema durante la disinstallazione. Questa funzione viene esposta dalla DLL di installazione del driver o da una DLL di installazione separata.
Sintassi
BOOL ConfigDriver(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszArgs,
LPSTR lpszMsg,
WORD cbMsgMax,
WORD * pcbMsgOut);
Argomenti
hwndParent
[Input] Handle della finestra padre. La funzione non visualizzerà finestre di dialogo se l'handle è Null.
fRequest
[Input] Tipo di richiesta. L'argomento fRequest deve contenere uno dei valori seguenti:
ODBC_INSTALL_DRIVER: installare un nuovo driver.
ODBC_REMOVE_DRIVER: rimuovere un driver.
Questa opzione può anche essere specifica del driver, nel qual caso l'argomento fRequest per la prima opzione deve iniziare da ODBC_CONFIG_DRIVER_MAX+1. L'argomento fRequest per qualsiasi opzione aggiuntiva deve iniziare anche da un valore maggiore di ODBC_CONFIG_DRIVER_MAX+1.
lpszDriver
[Input] Nome del driver registrato nella chiave Odbcinst.ini delle informazioni di sistema.
lpszArgs
[Input] Stringa con terminazione Null contenente argomenti per una richiesta fRequest specifica del driver.
lpszMsg
[Output] Stringa con terminazione Null contenente un messaggio di output dall'installazione del driver.
cbMsgMax
[Input] Lunghezza di lpszMsg.
pcbMsgOut
[Output] Numero totale di byte disponibili per la restituzione in lpszMsg.
Se il numero di byte disponibili per la restituzione è maggiore o uguale a cbMsgMax, il messaggio di output in lpszMsg viene troncato a cbMsgMax meno il carattere di terminazione null. L'argomento pcbMsgOut può essere un puntatore Null.
Resi
Se ha esito positivo, la funzione restituisce TRUE se ha esito negativo.
Diagnostica
Quando ConfigDriver restituisce FALSE, un valore *pfErrorCode associato viene inserito nel buffer degli errori del programma di installazione tramite una chiamata a SQLPostInstallerError e può essere ottenuto chiamando SQLInstallerError. Nella tabella seguente sono elencati i valori *pfErrorCode che possono essere restituiti da SQLInstallerError e spiega ognuno nel contesto di questa funzione.
*pfErrorCode | Errore | Descrizione |
---|---|---|
ODBC_ERROR_INVALID_HWND | Handle di finestra non valido | L'argomento hwndParent non è valido. |
ODBC_ERROR_INVALID_REQUEST_TYPE | Tipo di richiesta non valido | L'argomento fRequest non è uno dei seguenti: ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER L'opzione specifica del driver è minore o uguale a ODBC_CONFIG_DRIVER_MAX. |
ODBC_ERROR_INVALID_NAME | Driver o nome traduttore non valido | L'argomento lpszDriver non è valido. Non è stato trovato nel Registro di sistema. |
ODBC_ERROR_REQUEST_FAILED | Richiesta non riuscita | Impossibile eseguire l'operazione richiesta dall'argomento fRequest . |
ODBC_ERROR_DRIVER_SPECIFIC | Errore specifico del driver o del traduttore | Errore specifico del driver per il quale non è presente alcun errore di programma di installazione ODBC definito. L'argomento SzError in una chiamata alla funzione SQLPostInstallerError deve contenere il messaggio di errore specifico del driver. |
Commenti
Opzioni specifiche del driver
Un'applicazione può richiedere funzionalità specifiche del driver esposte dal driver usando l'argomento fRequest . La richiesta fRequest per la prima opzione sarà ODBC_CONFIG_DRIVER_MAX più 1 e le opzioni aggiuntive verranno incrementate di 1 da tale valore. Tutti gli argomenti richiesti dal driver per tale funzione devono essere forniti in una stringa con terminazione Null passata nell'argomento lpszArgs . I driver che forniscono tali funzionalità devono mantenere una tabella di opzioni specifiche del driver. Le opzioni devono essere documentate completamente nella documentazione del driver. Gli autori di applicazioni che usano opzioni specifiche del driver devono tenere presente che questo rende l'applicazione meno interoperabile.
Messaggi
Una routine di installazione del driver può inviare un sms a un'applicazione come stringa con terminazione Null nel buffer lpszMsg . Il messaggio verrà troncato a cbMsgMax meno il carattere di terminazione null dalla funzione ConfigDriver se è maggiore o uguale a cbMsgMax caratteri.