SQLDrivers függvény

Megfelelőség
Bemutatott verzió: ODBC 2.0 Szabványoknak megfelelés: ODBC

Summary
Az SQLDrivers megjeleníti a driver leírásokat és a driver attribútum kulcsszavakat. Ezt a funkciót csak a Driver Manager valósítja meg.

Syntax

  
SQLRETURN SQLDrivers(  
     SQLHENV         EnvironmentHandle,  
     SQLUSMALLINT    Direction,  
     SQLCHAR *       DriverDescription,  
     SQLSMALLINT     BufferLength1,  
     SQLSMALLINT *   DescriptionLengthPtr,  
     SQLCHAR *       DriverAttributes,  
     SQLSMALLINT     BufferLength2,  
     SQLSMALLINT *   AttributesLengthPtr);  

Arguments

EnvironmentHandle
[Bemenet] Környezet kezelése.

Irány
[Bemenet] Meghatározza, hogy a Driver Manager letölti-e a következő vezetőleírást a listából (SQL_FETCH_NEXT), vagy a keresés a lista elejétől indul (SQL_FETCH_FIRST).

DriverDescription
[Kimenet] Mutató egy pufferre, ahol vissza kell adni a driver leírást.

Ha a DriverDescription NULL, akkor a DescriptionLengthPtr továbbra is visszaadja a DriverDescription által mutatott pufferben elérhető összes karakterszámot (kivéve a null-termination karaktert a karakteradatokhoz).

BufferLength1
[Bemenet] A *DriverDescription puffer hossza, karakterekben.

LeírásHosszPtr
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni a *DriverDescription-ban elérhető összes karakter számát (a null-terminációs karakter kivételével). Ha a visszatérhető karakterek száma nagyobb, mint a BufferLength1, akkor a *DriverDescription illegaszkodó leírása a null-terminációs karakter hosszát levonva BufferLength1-re rövidítik.

DriverAttributes
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni az illevezetői attribútumérték-párok listáját (lásd "Hozzászólások").

Ha a DriverAttributes NULL, az AttributesLengthPtr továbbra is visszaadja a DriverAttributes által mutatott pufferben elérhető összes bájtszámot (kivéve a null-termination karaktert a karakteradatokhoz).

BufferLength2
[Bemenet] A *DriverAttributes puffer hossza karakterekben. Ha a *DriverDescription érték Unicode string (amikor SQLDriversW hívásakor), akkor a BufferLength argumentusnak páros számnak kell lennie.

AttributesLengthPtr
[Kimenet] Mutató egy pufferre, amelyben vissza lehet adni a *DriverAttributes alatt elérhető bájtok teljes számát (a null-terminációs bájt kivételével). Ha a visszaadható bájtok száma nagyobb, mint a BufferLength2, akkor a *DriverAttributes attribútumérték-párok listája a null-termináció karakter hosszát levonva a BufferLength2-re rövidítik.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR vagy SQL_INVALID_HANDLE.

Diagnostics

Amikor az SQLDrivers SQL_ERROR vagy SQL_SUCCESS_WITH_INFO értéket ad vissza, a hozzárendelt SQLSTATE értéket lehet megszerezni az SQLGetDiagRec hívásával, amely egy SQL_HANDLE_ENV HandleType és egy EnvironmentHandleHandle nevű eszköz. Az alábbi táblázat felsorolja azokat az SQLSTATE értékeket, amelyeket általában az SQLDrivers adnak vissza, és mindegyiket elmagyarázza ezen függvény kontextusában; a "(DM)" jelölés megelőzi a Driver Manager által visszaadott SQLSTATE-leírásokat. Az egyes SQLSTATE-értékekhez társított visszatérési kód SQL_ERROR, kivéve, ha másként van feltüntetve.

SQLSTATE Hiba Description
01000 Általános figyelmeztetés (DM) A vezetővezetőnek specifikus tájékoztató üzenet. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
01004 Sztringadatok, jobb csonkolt (DM) A *DriverDescription puffer nem volt elég nagy ahhoz, hogy a teljes driver leírást adja vissza. Ezért a leírást lerövidítették. A teljes vezetőleírás hossza a *DescriptionLengthPtr. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)

(DM) A *DriverAttributes puffer nem volt elég nagy ahhoz, hogy a teljes attribútumérték-párok listáját adja vissza. Ezért a listát lerövidítették. Az attribútumérték-párok csonkítatlan listájának hosszát az *AttributesLengthPtr fájlban adják vissza. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
HY000 Általános hiba Hiba történt, amely miatt nem volt konkrét SQLSTATE, és amelyhez nem definiáltak implementációspecifikus SQLSTATE-t. Az SQLGetDiagRec által a *MessageText pufferben visszaadott hibaüzenet leírja a hibát és annak okát.
HY001 Memóriafoglalási hiba (DM) A Driver Manager nem tudott olyan memóriát osztani le, amely szükséges a funkció végrehajtásához vagy befejezéséhez.
HY010 Függvényütemezési hiba (DM) SQLExecute, SQLExecDirect vagy SQLMoreResults lett meghívva az Utasításkezelőhöz , és SQL_PARAM_DATA_AVAILABLE ad vissza. Ez a függvény az összes streamelt paraméter adatainak lekérése előtt lett meghívva.
HY013 Memóriakezelési hiba A függvényhívás nem dolgozható fel, mert a mögöttes memóriaobjektumok nem érhetők el, esetleg a memóriahiány miatt.
HY090 Érvénytelen sztring vagy puffer hossza (DM) A BufferLength1 argumentum értéke kevesebb volt, mint 0.

(DM) A BufferLength2 argumentum értéke kevesebb volt, mint 0, vagy egyenlő volt 1-gyel.
HY103 Érvénytelen lekérdezési kód (DM) Az Irány érveléshez megadott érték nem volt egyenlő SQL_FETCH_FIRST vagy SQL_FETCH_NEXT-vel.
HY117 A kapcsolat ismeretlen tranzakciós állapot miatt fel van függesztve. Csak a leválasztási és írásvédett függvények engedélyezettek. (DM) A felfüggesztett állapotról további információt az SQLEndTran függvényben talál.

Comments

Az SQLDrivers visszaadja az illeszőr leírását a *DriverDescription pufferben. További információkat ad vissza az illezőprogramról a *DriverAttributes pufferben, kulcsszó-érték párok listájaként. Az illesztőprogramok rendszerinformációiban felsorolt összes kulcsszó visszakerül minden illesztőprogramra, kivéve a CreateDSN-t, amelyet adatforrások létrehozására használnak, ezért opcionális. Minden párt egy null bájttal zárul, a teljes listát pedig null bájttal zárják le (azaz két null bájt jelzi a lista végét). Például egy fájlalapú illesztőprogram, amely C szintaxist használ, a következő attribútumlistát adhatja vissza ("\0" egy null karaktert képvisel):

FileUsage=1\0FileExtns=*.dbf\0\0  

Ha a *DriverAttributes nem elég nagy ahhoz, hogy az egész listát elfoglalja, a listát lerövidítik, az SQLDrivers az SQLSTATE 01004-et (Data levágott) érték vissza, és a lista hossza (a végső null-termination bájt kivételével) a *AttributesLengthPtr-ben jelenik meg.

A meghajtó attribútum kulcsszavakat a rendszerinformációból adják hozzá az illesztőprogram telepítésekor. További információért lásd: ODBC komponensek telepítése.

Egy alkalmazás többször is hívhatja az SQLDrivers-t , hogy lekérje az összes illesztőprogram-leírást. A Driver Manager ezeket az információkat a rendszerinformációból nyeri le. Ha nincs több driver leírás, az SQLDrivers SQL_NO_DATA visszaad. Ha az SQLDrivers-t azonnal SQL_FETCH_NEXT-vel hívják meg, miután SQL_NO_DATA visszaad, akkor az első illesztőgép leírását adja vissza. Arról, hogyan használja egy alkalmazás az SQLDrivers által visszaküldött információkat, lásd: Adatforrás vagy driver kiválasztása.

Ha SQL_FETCH_NEXT az első híváskor továbbítják az SQLDriversnek , az SQLDrivers az első adatforrás nevét adja vissza.

Mivel az SQLDrivers a Driver Managerben van megvalósítva, minden illesztőprogramra támogatott, függetlenül attól, hogy az adott illesztőprogram szabványainak megfelel-e.

Információ erről: Nézze
Az adatforráshoz való csatlakozáshoz szükséges értékek felfedezése és felsorolása SQLBrowseConnect függvény
Csatlakozás adatforráshoz SQLConnect-függvény
Adatforrásnevek visszaadása SQLDataSources függvény
Adatforráshoz való csatlakozás egy kapcsolati karakterlánc vagy párbeszédablak segítségével SQLDriverConnect függvény