Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Kapcsolódó funkciók
| 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 |