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 3.0 Standardsefterlevnad: ISO 92
Summary
SQLGetEnvAttr returnerar den aktuella inställningen för ett miljöattribut.
Syntax
SQLRETURN SQLGetEnvAttr(
SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
Arguments
EnvironmentHandle
[Input] Miljöhantering.
Attribut
[Input] Attribut att hämta.
ValuePtr
[Utdata] Pekare till en buffert där det aktuella värdet av attributet som anges av Attribute returnerar.
Om ValuePtr är NULL kommer StringLengthPtr ändå att returnera det totala antalet bytes (exklusive null-termineringstecknet för teckendata) som finns tillgängliga att returnera i bufferten som ValuePtr pekar på.
BufferLength
[Input] Om ValuePtr pekar på en teckensträng bör detta argument vara längden av *ValuePtr. Om *ValuePtr är ett heltal ignoreras BufferLength . Om *ValuePtr är en Unicode-sträng (vid anrop av SQLGetEnvAttrW) måste BufferLength-argumentet vara ett jämnt tal. Om attributvärdet inte är en teckensträng används BufferLength inte.
StringLengthPtr
[Utdata] En pekare till en buffert där man kan returnera det totala antalet byte (exklusive null-termineringstecknet) som finns tillgängligt att returnera i *ValuePtr. Om attributvärdet är en teckensträng och antalet bytes som kan returneras är större än eller lika med BufferLength, förkortas datan i *ValuePtr till BufferLength minus längden på ett nulltermineringstecken och nulltermineras av drivrutinen.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR eller SQL_INVALID_HANDLE.
Diagnostics
När SQLGetEnvAttr returnerar 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 of EnvironmentHandle. Följande tabell listar de SQLSTATE-värden som vanligtvis returneras av SQLGetEnvAttr 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 | Description |
|---|---|---|
| 01000 | Allmän varning | Informationsmeddelande för drivrutinsspecifikt. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 01004 | Strängdata, höger trunkerade | Datan som returnerades i *ValuePtr avkortades till BufferLength minus nulltermineringstecknet. Längden på det otrunkerade strängvärdet returneras i *StringLengthPtr. (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 | Drivrutinen kunde inte allokera minne som krävs för körning eller slutförande av funktionen. |
| HY010 | Funktionssekvensfel | (DM) SQL_ATTR_ODBC_VERSION har ännu inte satts via SQLSetEnvAttr. Du behöver inte sätta SQL_ATTR_ODBC_VERSION explicit om du använder SQLAllocHandleStd. |
| HY013 | Minneshanteringsfel | Det gick inte att bearbeta funktionsanropet eftersom det inte gick att komma åt underliggande minnesobjekt, möjligen på grund av minnesbrist. |
| HY092 | Ogiltig attribut-/optionsidentifierare | Värdet som specificerades för argumentattributet var inte giltigt för den version av ODBC som stöddes av drivrutinen. |
| 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. |
| HYC00 | Valfri funktion har inte implementerats | Värdet som angavs för argumentattributet Attribut var ett giltigt ODBC-miljöattribut för den version av ODBC som stöddes av drivrutinen men inte av drivrutinen. |
| IM001 | Drivrutinen stöder inte den här funktionen | (DM) Drivrutinen som motsvarar EnvironmentHandle stöder inte funktionen. |
Comments
För en lista över attribut, se SQLSetEnvAttr. Det finns inga miljöattribut som är specifika för föraren. Om Attribute specificerar ett attribut som returnerar en sträng, måste ValuePtr vara en pekare till en buffert där strängen ska returneras. Den maximala längden på strängen, inklusive null-termineringsbytet, kommer att vara BufferLength-bytes .
SQLGetEnvAttr kan anropas när som helst mellan allokering och frigörandet av ett miljöhandtag. Alla miljöattribut som applikationen framgångsrikt sätter för miljön kvarstår tills SQLFreeHandle anropas på EnvironmentHandle med HandleType SQL_HANDLE_ENV. Mer än ett miljöhandtag kan allokeras samtidigt i ODBC 3*.x*. Ett miljöattribut på en miljö påverkas inte när en annan miljö har allokerats.
Note
Attributet SQL_ATTR_OUTPUT_NTS environment stöds av standardgodkända applikationer. När SQLGetEnvAttr anropas returnerar ODBC 3*.x* Driver Manager alltid SQL_TRUE för detta attribut. SQL_ATTR_OUTPUT_NTS kan ställas in till SQL_TRUE endast genom ett anrop till SQLSetEnvAttr.
Relaterade funktioner
| Mer information om | Se |
|---|---|
| Returnera inställningen för ett anslutningsattribut | SQLGetConnectAttr-funktion |
| Returnera inställningen för ett instruktionsattribut | SQLGetStmtAttr-funktion |
| Att sätta ett anslutningsattribut | SQLSetConnectAttr-funktion |
| Att sätta ett miljöattribut | SQLSetEnvAttr-funktionen |
| Ange ett instruktionsattribut | SQLSetStmtAttr-funktion |