Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Överensstämmelse
Version introducerad: ODBC 2.0 Standardsefterlevnad: ODBC
Summary
SQLDrivers listar drivrutinsbeskrivningar och nyckelord för drivrutinsattribut. Denna funktion implementeras endast av Driver Manager.
Syntax
SQLRETURN SQLDrivers(
SQLHENV EnvironmentHandle,
SQLUSMALLINT Direction,
SQLCHAR * DriverDescription,
SQLSMALLINT BufferLength1,
SQLSMALLINT * DescriptionLengthPtr,
SQLCHAR * DriverAttributes,
SQLSMALLINT BufferLength2,
SQLSMALLINT * AttributesLengthPtr);
Arguments
EnvironmentHandle
[Input] Miljöhantering.
Riktning
[Input] Avgör om Driver Manager hämtar nästa drivrutinsbeskrivning i listan (SQL_FETCH_NEXT) eller om sökningen börjar från början av listan (SQL_FETCH_FIRST).
DriverDescription
[Utdata] Peka på en buffert där drivrutinsbeskrivningen ska returneras.
Om DriverDescription är NULL kommer DescriptionLengthPtr ändå att returnera det totala antalet tecken (exklusive null-termineringstecknet för teckendata) som finns tillgängliga att returnera i bufferten som DriverDescription pekar på.
BufferLength1
[Input] Längd på *DriverDescription-bufferten , i tecken.
BeskrivningLängdPtr
[Utdata] Pekare till en buffert där det totala antalet tecken (exklusive null-termineringstecknet) kan returneras i *DriverDescription. Om antalet tecken som kan returneras är större än eller lika med BufferLength1, trunkeras drivrutinsbeskrivningen i *DriverDescription till BufferLength1 minus längden på ett null-termineringstecken.
Föraregenskaper
[Utdata] Pekare till en buffert där listan över attributvärdspar för drivrutiner returneras (se "Kommentarer").
Om DriverAttributes är NULL kommer AttributesLengthPtr ändå att returnera det totala antalet bytes (exklusive null-termineringstecknet för teckendata) som finns tillgängliga att returnera i bufferten som DriverAttributes pekar på.
BufferLength2
[Input] Längden på *DriverAttributs-bufferten , i tecken. Om *DriverDescription-värdet är en Unicode-sträng (vid anrop av SQLDriversW) måste argumentet BufferLength vara ett jämnt tal.
AttributLengthPtr
[Utdata] Pekare till en buffert där man returnerar det totala antalet bytes (exklusive nulltermineringsbytet) som finns tillgängligt att returnera i *DriverAttributes. Om antalet byte som kan returneras är större än eller lika med BufferLength2, förkortas listan över attributvärdspar i *DriverAttributes till BufferLength2 minus längden på null-termineringstecknet.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR eller SQL_INVALID_HANDLE.
Diagnostics
När SQLDrivers returnerar antingen SQL_ERROR eller SQL_SUCCESS_WITH_INFO kan ett associerat SQLSTATE-värde erhållas genom att anropa SQLGetDiagRec med HandleType SQL_HANDLE_ENV och Handle EnvironmentHandle. Följande tabell listar de SQLSTATE-värden som vanligtvis returneras av SQLDrivers och förklarar var och en i kontexten av denna funktion; notationen "(DM)" föregår beskrivningarna av SQLSTATE som returneras av Driver Manager. Returkoden som är associerad med varje SQLSTATE-värde är SQL_ERROR, om inget annat anges.
| SQLSTATE | Error | Beskrivning |
|---|---|---|
| 01000 | Allmän varning | (DM) Informationsmeddelande specifikt för förarchefen. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01004 | Strängdata, höger trunkerade | (DM) Bufferten *DriverDescription var inte tillräckligt stor för att returnera hela drivrutinsbeskrivningen. Därför förkortades beskrivningen. Längden på den fullständiga driverbeskrivningen återges i *DescriptionLengthPtr. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) (DM) Bufferten *DriverAttributes var inte tillräckligt stor för att returnera hela listan över attributvärdspar. Därför förkortades listan. Längden på den obrumpade listan över attributvärdspar returneras i *AttributesLengthPtr. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| HY000 | Allmänt fel | Ett fel uppstod för vilket det inte fanns någon specifik SQLSTATE och för vilken ingen implementeringsspecifik SQLSTATE definierades. Felmeddelandet som returnerades av SQLGetDiagRec i *MessageText-bufferten beskriver felet och dess orsak. |
| HY001 | Fel vid minnesallokering | (DM) Driver Manager kunde inte allokera minne som krävs för att stödja exekvering eller slutförande av funktionen. |
| HY010 | Funktionssekvensfel | (DM) SQLExecute, SQLExecDirect eller SQLMoreResults anropades för StatementHandle och returnerades SQL_PARAM_DATA_AVAILABLE. Den här funktionen anropades innan data hämtades för alla strömmade parametrar. |
| HY013 | Minneshanteringsfel | Det gick inte att bearbeta funktionsanropet eftersom det inte gick att komma åt underliggande minnesobjekt, möjligen på grund av minnesbrist. |
| HY090 | Ogiltig sträng- eller buffertlängd | (DM) Värdet som specificerades för argument BufferLength1 var mindre än 0. (DM) Värdet som specificerades för argument BufferLength2 var mindre än 0 eller lika med 1. |
| HY103 | Ogiltig återvinningskod | (DM) Det angivna värdet för argumentet Riktning var inte lika med SQL_FETCH_FIRST eller SQL_FETCH_NEXT. |
| HY117 | Anslutningen pausas på grund av okänt transaktionstillstånd. Endast frånkopplings- och skrivskyddade funktioner tillåts. | (DM) Mer information om pausat tillstånd finns i SQLEndTran-funktion. |
Comments
SQLDrivers returnerar drivrutinsbeskrivningen i *DriverDescription-bufferten . Den returnerar ytterligare information om drivrutinen i *DriverAttributs-bufferten som en lista över nyckelord-värdepar. Alla nyckelord som anges i systeminformationen för drivrutiner kommer att returneras för alla drivrutiner, förutom CreateDSN, som används för att be om skapande av datakällor och därför är valfritt. Varje par avslutas med en nullbyte, och den kompletta listan avslutas med en nullbyte (det vill säga, två nullbyte markerar slutet). Till exempel kan en filbaserad drivrutin som använder C-syntax returnera följande lista med attribut ("\0" representerar ett nolltecken):
FileUsage=1\0FileExtns=*.dbf\0\0
Om *DriverAttributes inte är tillräckligt stort för att rymma hela listan, trunkeras listan, SQLDrivers returnerar SQLSTATE 01004 (Data trunkerad), och längden på listan (exklusive den sista nulltermineringsbytet) returneras i *AttributesLengthPtr.
Drivrutinsattributnyckelord läggs till från systeminformationen när drivrutinen installeras. För mer information, se Installation av ODBC-komponenter.
En applikation kan anropa SQLDrivers flera gånger för att hämta alla drivrutinsbeskrivningar. Driver Manager hämtar denna information från systeminformationen. När det inte finns några drivrutinsbeskrivningar kvar, returnerar SQLDrivers SQL_NO_DATA. Om SQLDrivers anropas med SQL_FETCH_NEXT omedelbart efter att den returnerat SQL_NO_DATA, returnerar den den första drivrutinsbeskrivningen. För information om hur en applikation använder informationen som returneras av SQLDrivers, se Välj en datakälla eller drivrutin.
Om SQL_FETCH_NEXT skickas till SQLDrivers första gången den anropas, returnerar SQLDrivers det första namnet på datakällan.
Eftersom SQLDrivers är implementerat i Driver Manager stöds det för alla drivrutiner oavsett om en viss drivrutin uppfyller standarderna.
Relaterade funktioner
| Mer information om | Se |
|---|---|
| Att upptäcka och lista värden som krävs för att ansluta till en datakälla | SQLBrowseConnect-funktionen |
| Ansluta till en datakälla | SQLConnect-funktion |
| Returnerande datakällnamn | SQLDataSources-funktionen |
| Anslutning till en datakälla via en reťazec pripojenia eller dialogruta | SQLDriverConnect-funktion |