Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Soulad
Představená verze: ODBC 2.0 Shoda standardů: ODBC
Summary
SQLDrivers uvádí popisy ovladačů a klíčová slova atributů ovladačů. Tato funkce je implementována pouze Správcem ovladačů.
Syntax
SQLRETURN SQLDrivers(
SQLHENV EnvironmentHandle,
SQLUSMALLINT Direction,
SQLCHAR * DriverDescription,
SQLSMALLINT BufferLength1,
SQLSMALLINT * DescriptionLengthPtr,
SQLCHAR * DriverAttributes,
SQLSMALLINT BufferLength2,
SQLSMALLINT * AttributesLengthPtr);
Arguments
EnvironmentHandle
[Vstup] Ovládání prostředí.
Směr
[Vstup] Určuje, zda správce ovladačů načte další popis ovladače v seznamu (SQL_FETCH_NEXT), nebo zda vyhledávání začíná od začátku seznamu (SQL_FETCH_FIRST).
Popis ovladače
[Výstup] Ukazatel na buffer, do kterého se vrací popis ovladače.
Pokud je DriverDescription NULL, DescriptionLengthPtr stále vrátí celkový počet znaků (kromě znaku null-termination pro data znaku), které lze vrátit v bufferu na který ukazuje DriverDescription.
BufferLength1
[Vstup] Délka bufferu *DriverDescription , v znacích.
DescriptionLengthPtr
[Výstup] Ukazatel na buffer, do kterého se vrátí celkový počet znaků (bez znaku nulového ukončení), které lze vrátit v *DriverDescription. Pokud je počet znaků dostupných k vrácení větší nebo roven BufferLength1, popis ovladače v *DriverDescription je zkrácen na BufferLength1 minus délka znaku null-termination.
DriverAttributes
[Výstup] Ukazatel na buffer, do kterého se vrací seznam dvojic hodnot atributů ovladače (viz "Komentáře").
Pokud je DriverAttributes NULL, AttributesLengthPtr stále vrátí celkový počet bajtů (bez znaku null-termination pro data znaku), které lze vrátit v bufferu na který ukazuje DriverAttributes.
BufferLength2
[Vstup] Délka bufferu *DriverAttributes , ve znacích. Pokud je hodnota *DriverDescription Unicode řetězec (při volání SQLDriversW), argument BufferLength musí být sudé číslo.
AtributyDélkaPtr
[Výstup] Ukazatel na buffer, do kterého lze vrátit celkový počet bajtů (bez null-termination bajtu), které lze vrátit v *DriverAttributes. Pokud je počet bajtů dostupných k vrácení větší nebo roven BufferLength2, seznam párů hodnot atributů v *DriverAttributes se zkrátí na BufferLength2 minus délka znaku null-terminace.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR nebo SQL_INVALID_HANDLE.
Diagnostika
Když SQLDrivers vrací buď SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLstate, pokud se vyvolá SQLGetDiagRec s HandleType SQL_HANDLE_ENV a HandlemEnvironmentHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLDrivers 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 *Driver Description nebyl dostatečně velký pro vrácení kompletního popisu ovladače. Proto byl popis zkrácen. Délka kompletního popisu ovladače se vrací v *DescriptionLengthPtr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.) (DM) Buffer *DriverAttributes nebyl dostatečně velký na to, aby vrátil kompletní seznam párů hodnot atributů. Proto byl seznam zkrácen. Délka nekráceného seznamu dvojic hodnot atributů se vrací v *AttributesLengthPtr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.) |
| HY000 | Obecná chyba | Došlo k chybě, pro kterou nebyla definována žádná specifická funkce SQLSTATE a pro kterou nebyla definována žádná implementace 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 nebo rovna 1. |
| HY103 | Neplatný kód pro získání | (DM) Hodnota určená pro argument Direction nebyla rovna SQL_FETCH_FIRST 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
SQLDrivers vrací popis ovladače v bufferu *DriverDescription . Vrací další informace o ovladači v bufferu *DriverAttributes jako seznam párů klíč-hodnota. Všechna klíčová slova uvedená v systémových informacích pro ovladače budou vrácena pro všechny ovladače, kromě CreateDSN, který slouží k podnětání vytváření datových zdrojů a je tedy volitelný. Každý pár končí nulovým bajtem a kompletní seznam končí nulovým bajtem (tedy dva nulové bajty označují konec seznamu). Například ovladač založený na souborech používající syntaxi v C může vrátit následující seznam atributů ("\0" představuje nulový znak):
FileUsage=1\0FileExtns=*.dbf\0\0
Pokud *DriverAttributes není dostatečně velký pro uložení celého seznamu, seznam se zkrátí, SQLDrivers vrátí SQLSTATE 01004 (Data zkráceno) a délka seznamu (bez posledního null-termination bajtu) se vrátí v *AttributesLengthPtr.
Klíčová slova atributů ovladačů se přidávají ze systémových informací při instalaci ovladače. Pro více informací viz Instalace komponent ODBC.
Aplikace může SQLDrivers volat vícekrát, aby získala všechny popisy ovladačů. Driver Manager získává tyto informace ze systémových informací. Když už nejsou žádné další popisy ovladačů, SQLDrivers SQL_NO_DATA vrátí. Pokud je SQLDrivers volán s SQL_FETCH_NEXT ihned po návratu SQL_NO_DATA, vrátí první popis ovladače. Pro informace o tom, jak aplikace využívá informace vrácené SQLDrivers, viz Výběr zdroje dat nebo ovladače.
Pokud je SQL_FETCH_NEXT předán SQLDrivers při prvním volání, SQLDrivers vrátí první název datového zdroje.
Protože je SQLDrivers 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.
Související funkce
| 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 |
| Vracení názvů zdrojů dat | Funkce SQLDataSources |
| Připojení ke zdroji dat pomocí připojovací řetězec nebo dialogového okna | FUNKCE SQLDriverConnect |