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 1.0: ISO 92
Sommario
SQLDataSources restituisce informazioni su una fonte di dati. Questa funzione è implementata solo dal Driver Manager.
Sintassi
SQLRETURN SQLDataSources(
SQLHENV EnvironmentHandle,
SQLUSMALLINT Direction,
SQLCHAR * ServerName,
SQLSMALLINT BufferLength1,
SQLSMALLINT * NameLength1Ptr,
SQLCHAR * Description,
SQLSMALLINT BufferLength2,
SQLSMALLINT * NameLength2Ptr);
Arguments
EnvironmentHandle
[Input] Controllo ambientale.
Direction
[Input] Determina quale fonte di dati il Driver Manager restituisce informazioni. Può essere:
SQL_FETCH_NEXT (per recuperare il nome della sorgente dati successiva nella lista), SQL_FETCH_FIRST (per recuperare dall'inizio della lista), SQL_FETCH_FIRST_USER (per recuperare il primo DSN utente) o SQL_FETCH_FIRST_SYSTEM (per recuperare il primo DSN di sistema).
Quando Direzione è impostata su SQL_FETCH_FIRST, le chiamate successive a SQLDataSources con Direzione impostata su SQL_FETCH_NEXT restituiscono sia DSN utente che di sistema. Quando Direzione è impostata su SQL_FETCH_FIRST_USER, tutte le chiamate successive a SQLDataSources con Direzione impostata su SQL_FETCH_NEXT restituiscono solo DSN utente. Quando la Direzione è impostata su SQL_FETCH_FIRST_SYSTEM, tutte le chiamate successive a SQLDataSources con Direzione impostata su SQL_FETCH_NEXT restituiscono solo DSN di sistema.
Nome del Server
[Output] Puntatore a un buffer in cui restituire il nome della sorgente dati.
Se ServerName è NULL, NameLength1Ptr restituirà comunque il numero totale di caratteri (escluso il carattere di null-termination per i dati dei caratteri) disponibili da restituire nel buffer indicato da ServerName.
BufferLength1
[Input] Lunghezza del buffer *ServerName , in caratteri; questo non deve essere necessario più lungo di SQL_MAX_DSN_LENGTH più il carattere di terminazione nulla.
NomeLunghezza1Ptr
[Output] Puntatore a un buffer in cui restituire il numero totale di caratteri (escluso il carattere di null-termination) disponibili in *ServerName. Se il numero di caratteri disponibili da restituire è maggiore o uguale a BufferLength1, il nome della sorgente dati in *ServerName viene troncato a BufferLength1 meno la lunghezza di un carattere di null-termination.
Description
[Output] Puntatore a un buffer in cui restituire la descrizione del driver associato alla sorgente dati. Ad esempio, dBASE o SQL Server.
Se Description è NULL, NameLength2Ptr restituirà comunque il numero totale di caratteri (escludendo il carattere di null-termination per i dati caratteri) disponibili da restituire nel buffer indicato da Description.
BufferLength2
[Input] Lunghezza nei caratteri del *Description buffer.
NameLength2Ptr
[Output] Puntatore a un buffer in cui restituire il numero totale di caratteri (escluso il carattere di null-termination) disponibili in *Description. Se il numero di caratteri disponibili da restituire è maggiore o uguale a BufferLength2, la descrizione del driver in *Description viene troncata a BufferLength2 meno la lunghezza di un carattere di null-termination.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR o SQL_INVALID_HANDLE.
Diagnostica
Quando SQLDataSources 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 SQLDataSources e li spiega 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 *ServerName non era abbastanza grande da restituire il nome completo della sorgente dei dati. Perciò, il nome fu troncato. La lunghezza dell'intero nome della sorgente dati viene restituita in *NameLength1Ptr. (La funzione restituisce SQL_SUCCESS_WITH_INFO. (DM) Il buffer *Description non era abbastanza grande da restituire la descrizione completa del driver. Pertanto, la descrizione è stata troncata. La lunghezza della descrizione della sorgente dati non runcata è restituita in *NameLength2Ptr. (La funzione restituisce SQL_SUCCESS_WITH_INFO. |
| HY000 | Errore generale | (DM) Si è verificato un errore per il quale non esisteva uno stato SQL specifico e per il quale non era stato definito uno stato SQLSTATE specifico per l'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. |
| HY103 | Codice di recupero non valido | (DM) Il valore specificato per l'argomento Direzione non era uguale a SQL_FETCH_FIRST, SQL_FETCH_FIRST_USER, SQL_FETCH_FIRST_SYSTEM 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
Poiché SQLDataSources è implementato nel Driver Manager, è supportato per tutti i driver indipendentemente dalla conformità agli standard di un determinato driver.
Un'applicazione può chiamare SQLDataSources più volte per recuperare tutti i nomi delle sorgenti dati. Il Driver Manager recupera queste informazioni dalle informazioni di sistema. Quando non ci sono più nomi di sorgenti dati, il Driver Manager restituisce SQL_NO_DATA. Se SQLDataSources viene chiamato con SQL_FETCH_NEXT immediatamente dopo aver restituito SQL_NO_DATA, restituirà il primo nome della sorgente dati. Per informazioni su come un'applicazione utilizza le informazioni restituite da SQLDataSources, vedi Scelta di una sorgente o driver di dati.
Se SQL_FETCH_NEXT viene passato a SQLDataSources la prima volta che viene chiamato, restituirà il primo nome della sorgente dati.
Il driver determina come i nomi delle sorgenti dati vengono mappati alle fonti dati reali.
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 |
| Connessione a un'origine dati tramite un stringa di connessione o una finestra di dialogo | Funzione SQLDriverConnect |
| Restituzione di descrizioni e attributi del driver | Funzione SQLDrivers |