Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Conformità
Versione introdotta: Conformità agli standard ODBC 2.0: ODBC
Sommario
SQLDrivers elenca le descrizioni dei driver e le parole chiave degli attributi dei driver. Questa funzione è implementata solo dal Driver Manager.
Sintassi
SQLRETURN SQLDrivers(
SQLHENV EnvironmentHandle,
SQLUSMALLINT Direction,
SQLCHAR * DriverDescription,
SQLSMALLINT BufferLength1,
SQLSMALLINT * DescriptionLengthPtr,
SQLCHAR * DriverAttributes,
SQLSMALLINT BufferLength2,
SQLSMALLINT * AttributesLengthPtr);
Arguments
EnvironmentHandle
[Input] Controllo ambientale.
Direction
[Input] Determina se il Driver Manager recupera la prossima descrizione del driver nella lista (SQL_FETCH_NEXT) o se la ricerca inizia dall'inizio della lista (SQL_FETCH_FIRST).
DriverDescription
[Output] Puntatore a un buffer in cui restituire la descrizione del driver.
Se DriverDescription è NULL, DescriptionLengthPtr restituirà comunque il numero totale di caratteri (escluso il carattere di null-termination per i dati caratteri) disponibili da restituire nel buffer indicato da DriverDescription.
BufferLength1
[Input] Lunghezza del buffer *DriverDescription , in caratteri.
DescrizioneLunghezzaPtr
[Output] Puntatore a un buffer in cui restituire il numero totale di caratteri (escluso il carattere di terminazione nulla) disponibili da restituire in *DriverDescription. Se il numero di caratteri disponibili da restituire è maggiore o uguale a BufferLength1, la descrizione del driver in *DriverDescription viene troncata a BufferLength1 meno la lunghezza di un carattere di null-termination.
Attributi del pilota
[Output] Puntatore a un buffer in cui restituire l'elenco delle coppie di valori attributi driver (vedi "Commenti").
Se DriverAttributes è NULL, AttributesLengthPtr restituirà comunque il numero totale di byte (escluso il carattere di null-termination per i dati del carattere) disponibili da restituire nel buffer indicato da DriverAttributes.
BufferLength2
[Input] Lunghezza del buffer *DriverAttributs , in caratteri. Se il valore *DriverDescription è una stringa Unicode (quando si chiama SQLDriversW), l'argomento BufferLength deve essere un numero pari.
AttributiLunghezzaPtr
[Output] Puntatore a un buffer in cui restituire il numero totale di byte (escluso il byte di terminazione nulla) disponibili da restituire in *DriverAttributes. Se il numero di byte disponibili da restituire è maggiore o uguale a BufferLength2, l'elenco delle coppie di valori attributi in *DriverAttributes viene troncato a BufferLength2 meno la lunghezza del carattere di null-termination.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR o SQL_INVALID_HANDLE.
Diagnostica
Quando SQLDrivers restituisce SQL_ERROR o SQL_SUCCESS_WITH_INFO, si può ottenere un valore SQLSTATE associato chiamando SQLGetDiagRec con un HandleType di SQL_HANDLE_ENV e un Handle di EnvironmentHandle. La tabella seguente elenca i valori SQLSTATE tipicamente restituiti da SQLDrivers e spiega ciascuno nel contesto di questa funzione; la notazione "(DM)" precede le descrizioni degli stati SQL restituite dal Driver Manager. Il codice restituito associato a ogni valore SQLSTATE è SQL_ERROR, a meno che non sia specificato diversamente.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Avviso generale | (DM) Messaggio informativo specifico per il Driver Manager. (La funzione restituisce SQL_SUCCESS_WITH_INFO. |
| 01004 | Dati stringa, troncati a destra | (DM) Il buffer *DriverDescription non era abbastanza grande da restituire la descrizione completa del driver. Pertanto, la descrizione è stata troncata. La lunghezza della descrizione completa del driver è restituita in *DescriptionLengthPtr. (La funzione restituisce SQL_SUCCESS_WITH_INFO. (DM) Il buffer *DriverAttributes non era abbastanza grande da restituire l'elenco completo delle coppie di valori attributi. Pertanto, la lista fu ridotta in modo accorciato. La lunghezza dell'elenco non runcato delle coppie di valori attributi viene restituita in *AttributesLengthPtr. (La funzione restituisce SQL_SUCCESS_WITH_INFO. |
| HY000 | Errore generale | Si è verificato un errore per il quale non è stato specificato SQLSTATE e per il quale non è stato definito alcun SQLSTATE specifico dell'implementazione. Il messaggio di errore restituito da SQLGetDiagRec nel buffer *MessageText descrive l'errore e la relativa causa. |
| HY001 | Errore di allocazione della memoria | (DM) Il Driver Manager non è riuscito ad allocare la memoria necessaria a supportare l'esecuzione o il completamento della funzione. |
| HY010 | Errore della sequenza di funzioni | (DM) SQLExecute, SQLExecDirect o SQLMoreResults è stato chiamato per StatementHandle e restituito SQL_PARAM_DATA_AVAILABLE. Questa funzione è stata chiamata prima del recupero dei dati per tutti i parametri trasmessi. |
| HY013 | Errore di gestione della memoria | Impossibile elaborare la chiamata di funzione perché non è stato possibile accedere agli oggetti di memoria sottostanti, probabilmente a causa di condizioni di memoria insufficiente. |
| HY090 | Lunghezza della stringa o del buffer non valida | (DM) Il valore specificato per l'argomento BufferLength1 era inferiore a 0. (DM) Il valore specificato per l'argomento BufferLength2 era inferiore a 0 o uguale a 1. |
| HY103 | Codice di recupero non valido | (DM) Il valore specificato per l'argomento Direzione non era uguale a SQL_FETCH_FIRST o SQL_FETCH_NEXT. |
| HY117 | La connessione viene sospesa a causa dello stato sconosciuto della transazione. Sono consentite solo funzioni disconnesse e di sola lettura. | (DM) Per altre informazioni sullo stato sospeso, vedere Funzione SQLEndTran. |
Comments
SQLDrivers restituisce la descrizione del driver nel buffer *DriverDescription . Restituisce informazioni aggiuntive sul driver nel buffer *DriverAttributes come elenco di coppie parola chiave-valore. Tutte le parole chiave elencate nelle informazioni di sistema per i driver verranno restituite per tutti i driver, tranne CreateDSN, che viene utilizzato per stimolare la creazione di fonti dati ed è quindi opzionale. Ogni coppia termina con un byte nullo, e la lista completa termina con un byte nullo (cioè, due byte nulli segnano la fine della lista). Ad esempio, un driver basato su file che utilizza la sintassi C potrebbe restituire il seguente elenco di attributi ("\0" rappresenta un carattere nullo):
FileUsage=1\0FileExtns=*.dbf\0\0
Se *DriverAttributes non è abbastanza grande da contenere l'intera lista, la lista viene troncata, SQLDrivers restituisce SQLSTATE 01004 (Dati troncati) e la lunghezza della lista (escludendo l'ultimo byte di terminazione nulla) viene restituita in *AttributesLengthPtr.
Le parole chiave degli attributi del driver vengono aggiunte dalle informazioni di sistema quando il driver viene installato. Per maggiori informazioni, vedi Installazione di componenti ODBC.
Un'applicazione può chiamare SQLDrivers più volte per recuperare tutte le descrizioni dei driver. Il Driver Manager recupera queste informazioni dalle informazioni di sistema. Quando non ci sono più descrizioni dei driver, SQLDrivers restituisce SQL_NO_DATA. Se SQLDrivers viene chiamato con SQL_FETCH_NEXT immediatamente dopo aver restituito SQL_NO_DATA, restituisce la prima descrizione del driver. Per informazioni su come un'applicazione utilizza le informazioni restituite da SQLDrivers, vedi Scelta di una sorgente o driver dati.
Se SQL_FETCH_NEXT viene passato a SQLDrivers la primissima volta che viene chiamato, SQLDrivers restituisce il primo nome della sorgente dati.
Poiché SQLDrivers è implementato nel Driver Manager, è supportato per tutti i driver indipendentemente dalla conformità agli standard di un determinato driver.
Funzioni correlate
| Per informazioni su | Vedi |
|---|---|
| Scoprire e elencare i valori necessari per connettersi a una sorgente di dati | Funzione SQLBrowseConnect |
| Connessione a un'origine dati | Funzione SQLConnect |
| Ritorno dei nomi delle sorgenti dati | Funzione SQLDataSources |
| Connessione a un'origine dati tramite un stringa di connessione o una finestra di dialogo | Funzione SQLDriverConnect |