Funkce SQLDataSources

Soulad
Zavedená verze: Dodržování standardů ODBC 1.0: ISO 92

Summary
SQLDataSources vrací informace o datovém zdroji. Tato funkce je implementována pouze Správcem ovladačů.

Syntax

  
SQLRETURN SQLDataSources(  
     SQLHENV          EnvironmentHandle,  
     SQLUSMALLINT     Direction,  
     SQLCHAR *        ServerName,  
     SQLSMALLINT      BufferLength1,  
     SQLSMALLINT *    NameLength1Ptr,  
     SQLCHAR *        Description,  
     SQLSMALLINT      BufferLength2,  
     SQLSMALLINT *    NameLength2Ptr);  

Arguments

EnvironmentHandle
[Vstup] Ovládání prostředí.

Směr
[Vstup] Určuje, o kterém zdroji dat správce ovladačů vrací informace. Může to být:

SQL_FETCH_NEXT (pro načtení dalšího názvu datového zdroje v seznamu), SQL_FETCH_FIRST (pro načtení z počátku seznamu), SQL_FETCH_FIRST_USER (pro načtení prvního uživatelského DSN) nebo SQL_FETCH_FIRST_SYSTEM (pro získání prvního systémového DSN).

Když je Direction nastaven na SQL_FETCH_FIRST, následná volání SQLDataSources s nastaveným směrem na SQL_FETCH_NEXT vrátí jak uživatelské, tak systémové DSN. Když je Směr nastaven na SQL_FETCH_FIRST_USER, všechny následující volání SQLDataSources s nastaveným směrem na SQL_FETCH_NEXT vracejí pouze uživatelská DSN. Když je Direction nastaveno na SQL_FETCH_FIRST_SYSTEM, všechny následující volání SQLDataSources s nastaveným směrem na SQL_FETCH_NEXT vrátí pouze systémové DSN.

název serveru
[Výstup] Ukazatel na buffer, do kterého se vrátí název datového zdroje.

Pokud je ServerName NULL, NameLength1Ptr stále vrátí celkový počet znaků (kromě znaku null-termination pro data znaku), které lze vrátit v bufferu na který ukazuje ServerName.

BufferLength1
[Vstup] Délka bufferu *ServerName , v znacích; nemusí být delší než SQL_MAX_DSN_LENGTH plus znak nulového zakončení.

NameLength1Ptr
[Výstup] Ukazatel na buffer, do kterého se vrací celkový počet znaků (bez znaku null-termination), který je možné vrátit v *ServerName. Pokud je počet znaků dostupných k vrácení větší nebo roven BufferLength1, název zdroje dat v *ServerName je zkrácen na BufferLength1 minus délku znaku null-termination.

Description
[Výstup] Ukazatel na buffer, do kterého se vrátí popis ovladače spojeného se zdrojem dat. Například dBASE nebo SQL Server.

Pokud je Description NULL, NameLength2Ptr stále vrátí celkový počet znaků (kromě znaku null-termination pro data znaků), které lze vrátit v bufferu na který ukazuje Popis.

BufferLength2
[Vstup] Délka znaků *Popisového bufferu.

NameLength2Ptr
[Výstup] Ukazatel na buffer, do kterého se vrátí celkový počet znaků (bez znaku null-terminingu), které lze vrátit v *Popis. Pokud je počet znaků dostupných k vrácení větší nebo roven BufferLength2, popis ovladače v *Description je zkrácen na BufferLength2 minus délku znaku null-termination.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Když SQLDataSources vrátí buď SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLeDiagRec voláním SQLGetDiagRec s HandleType SQL_HANDLE_ENV a HandleEnvironmentHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLDataSources obvykle vrací, a vysvětluje každou z nich v kontextu této funkce; notace "(DM)" předchází popisům SQLstavů vráceným Správcem ovladačů. Návratový kód přidružený ke každé hodnotě SQLSTATE je SQL_ERROR, pokud není uvedeno jinak.

SQLSTATE Error Description
01000 Obecné upozornění (DM) Informační zpráva specifická pro Driver Manager. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01004 Řetězcová data, zkrácená vpravo (DM) Buffer *ServerName nebyl dostatečně velký pro vrácení úplného názvu datového zdroje. Proto bylo jméno zkráceno. Délka celého názvu datového zdroje se vrací v *NameLength1Ptr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)

(DM) Buffer *Popis nebyl dostatečně velký, aby vrátil kompletní popis ovladače. Proto byl popis zkrácen. Délka popisu neomezeného datového zdroje se vrací v *NameLength2Ptr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
HY000 Obecná chyba (DM) Došlo k chybě, pro kterou neexistoval specifický SQLSTATE a pro kterou nebyl definován implementace specifický SQLSTATE. Chybová zpráva vrácená nástrojem SQLGetDiagRec v vyrovnávací paměti *MessageText popisuje chybu a její příčinu.
HY001 Chyba přidělení paměti (DM) Správce ovladačů nebyl schopen přidělit paměť potřebnou k podpoře provádění nebo dokončení funkce.
HY010 Chyba posloupnosti funkcí (DM) SQLExecute, SQLExecDirect nebo SQLMoreResults byl volána pro StatementHandle a vrácena SQL_PARAM_DATA_AVAILABLE. Tato funkce byla volána před načtením dat pro všechny streamované parametry.
HY013 Chyba správy paměti Volání funkce nelze zpracovat, protože základní objekty paměti nelze získat přístup, pravděpodobně kvůli nedostatku paměti.
HY090 Neplatná délka řetězce nebo vyrovnávací paměti (DM) Hodnota zadaná pro argument BufferLength1 byla menší než 0.

(DM) Hodnota zadaná pro argument BufferLength2 byla menší než 0.
HY103 Neplatný kód pro získání (DM) Hodnota určená pro argument Směr nebyla rovna SQL_FETCH_FIRST, SQL_FETCH_FIRST_USER, SQL_FETCH_FIRST_SYSTEM ani SQL_FETCH_NEXT.
HY117 Připojení je pozastaveno kvůli neznámému stavu transakce. Jsou povoleny pouze funkce pro odpojení a jen pro čtení. (DM) Další informace o pozastaveném stavu naleznete v tématu FUNKCE SQLEndTran.

Comments

Protože je SQLDataSources implementován ve Správci ovladačů, je podporován pro všechny ovladače bez ohledu na dodržování standardů konkrétního ovladače.

Aplikace může SQLDataSources volat vícekrát, aby získala všechna jména datových zdrojů. Driver Manager získává tyto informace ze systémových informací. Když už nejsou žádná jména zdrojů dat, správce ovladačů SQL_NO_DATA vrátí. Pokud je SQLDataSources volán s SQL_FETCH_NEXT ihned po vrácení SQL_NO_DATA, vrátí název prvního datového zdroje. Pro informace o tom, jak aplikace využívá informace vrácené SQLDataSources, viz Výběr zdroje dat nebo ovladače.

Pokud je SQL_FETCH_NEXT předán SQLDataSources při prvním volání, vrátí název prvního datového zdroje.

Ovladač určuje, jak jsou názvy datových zdrojů mapovány na skutečné datové zdroje.

Informace o Podívejte se
Objevování a zaznamenání hodnot potřebných k připojení ke zdroji dat Funkce SQLBrowseConnect
Připojení ke zdroji dat Funkce SQLConnect
Připojení ke zdroji dat pomocí připojovací řetězec nebo dialogového okna FUNKCE SQLDriverConnect
Vracející se popisy a atributy jezdců Funkce SQLDrivers