Delen via


Verbindingsovergangen

ODBC-verbindingen hebben de volgende statussen.

Staat Beschrijving
C0 Niet-toegewezen omgeving, niet-toegewezen verbinding
C1 Toegewezen omgeving, niet-toegewezen verbinding
C2 Toegewezen omgeving, toegewezen verbinding
C3 Verbindingsfunctie heeft gegevens nodig
C4 Verbonden verbinding
C5 Verbonden verbinding, toegewezen instructie
C6 Verbonden verbinding, transactie wordt uitgevoerd. Het is mogelijk dat een verbinding de status C6 heeft zonder instructies die aan de verbinding zijn toegewezen. Stel dat de verbinding zich in de handmatige doorvoermodus bevindt en de status C4 heeft. Als een instructie wordt toegewezen, uitgevoerd (een transactie starten) en vervolgens wordt vrijgemaakt, blijft de transactie actief, maar zijn er geen instructies over de verbinding.

In de volgende tabellen ziet u hoe elke ODBC-functie van invloed is op de verbindingsstatus.

SQLAllocHandle

C0

Geen Env.
C1 Niet-toegewezen C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
C1[1] --[5] --[5] --[5] --[5] --[5] --[5]
(IH)[2] C2 --[5] --[5] --[5] --[5] --[5]
(IH)[3] (IH) (08003) (08003) C5 --[5] --[5]
(IH)[4] (IH) (08003) (08003) --[5] --[5] --[5]

[1] In deze rij worden overgangen weergegeven wanneer HandleType is SQL_HANDLE_ENV.

[2] In deze rij worden overgangen weergegeven wanneer HandleType- is SQL_HANDLE_DBC.

[3] Deze rij toont overgangen wanneer HandleType- is SQL_HANDLE_STMT.

[4] Deze rij toont overgangen wanneer HandleType is SQL_HANDLE_DESC.

[5] Aanroepen van SQLAllocHandle- met OutputHandlePtr- die verwijst naar een geldige handle overschrijft die greep zonder rekening te houden met de vorige inhoud van die ingang, en kan problemen veroorzaken voor ODBC-stuurprogramma's. Het is onjuist programmeren van ODBC-toepassingen om SQLAllocHandle- tweemaal aan te roepen met dezelfde toepassingsvariabele die is gedefinieerd voor *OutputHandlePtr- zonder SQLFreeHandle- aan te roepen om de ingang vrij te maken voordat deze opnieuw wordt toegewezen. Het overschrijven van ODBC-ingangen op een dergelijke manier kan leiden tot inconsistent gedrag of fouten van ODBC-stuurprogramma's.

SQLBrowseConnect

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) C3 [d] C4 [s] -- [d] C2 [e] C4 [s] (08002) (08002) (08002)

SQLCloseCursor

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) -- --[1] C5[2]

[1] De verbinding bevindt zich in de modus handmatig doorvoeren.

[2] De verbinding bevindt zich in de modus voor automatisch doorvoeren.

SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges en SQLTableTables

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --

[1] De verbinding was in de modus voor automatisch doorvoeren of de gegevensbron heeft geen transactie gestart.

[2] De verbinding was in de modus handmatig doorvoeren en de gegevensbron begon een transactie.

SQLConnect

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) C4 (08002) (08002) (08002) (08002)

SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField en SQLSetDescRec

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) --[1] -- --

[1] In deze status zijn de enige beschrijvingen die beschikbaar zijn voor de toepassing expliciet toegewezen descriptors.

SQLDataSources en SQLDrivers

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) -- -- -- -- -- --

SQLDisconnect

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (08003) C2 C2 C2 25000

SQLDriverConnect

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) C4 s -- n[f] (08002) (08002) (08002) (08002)

SQLEndTran

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH)[1] --[3] --[3] --[3] -- -- --[4] of ([5], [6] en [8]) C4[5] en [7] C5[5], [6] en [9]
(IH)[2] (IH) (08003) (08003) -- -- C5

[1] In deze rij worden overgangen weergegeven wanneer HandleType is SQL_HANDLE_ENV.

[2] In deze rij worden overgangen weergegeven wanneer HandleType- is SQL_HANDLE_DBC.

[3] Omdat de verbinding niet de status Verbonden heeft, wordt deze niet beïnvloed door de transactie.

[4] De doorvoer of terugdraaibewerking is mislukt voor de verbinding. De functie retourneert SQL_ERROR in dit geval.

[5] De doorvoer of terugdraaibewerking is voltooid op de verbinding. De functie retourneert SQL_ERROR als het doorvoeren of terugdraaien is mislukt voor een andere verbinding, of de functie retourneert SQL_SUCCESS als de doorvoer of terugdraaibewerking is geslaagd voor alle verbindingen.

[6] Er is ten minste één instructie toegewezen aan de verbinding.

[7] Er zijn geen instructies toegewezen voor de verbinding.

[8] De verbinding had ten minste één instructie waarvoor een geopende cursor was en de gegevensbron behoudt cursors wanneer transacties worden doorgevoerd of teruggedraaid, afhankelijk van of CompletionType SQL_COMMIT of SQL_ROLLBACK is). Zie de kenmerken SQL_CURSOR_COMMIT_BEHAVIOR en SQL_CURSOR_ROLLBACK_BEHAVIOR in SQLGetInfo-voor meer informatie.

[9] Als de verbinding instructies bevat waarvoor open cursors waren, blijven de cursors niet behouden toen de transactie werd doorgevoerd of teruggedraaid.

SQLExecDirect en SQLExecute

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] C6[3] --

[1] De verbinding bevindt zich in de modus voor automatisch doorvoeren en de instructie die is uitgevoerd, is geen cursorspecificatie (zoals een SELECT-instructie); of de verbinding zich in de handmatige doorvoermodus bevond en de instructie die is uitgevoerd, heeft geen transactie gestart.

[2] De verbinding bevindt zich in de modus voor automatisch doorvoeren en de instructie is een cursorspecificatie (zoals een SELECT-instructie).

[3] De verbinding was in de modus handmatig doorvoeren en de gegevensbron begon een transactie.

SQLFreeHandle

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH)[1] C0 (HY010) (HY010) (HY010) (HY010) (HY010)
(IH)[2] (IH) (C1) (HY010) (HY010) (HY010) (HY010)
(IH)[3] (IH) (IH) (IH) (IH) C4[5] --[6] --[7] C4[5] en [8] C5[6] en [8]
(IH)[4] (IH) (IH) (IH) -- -- --

[1] In deze rij worden overgangen weergegeven wanneer HandleType is SQL_HANDLE_ENV.

[2] In deze rij worden overgangen weergegeven wanneer HandleType- is SQL_HANDLE_DBC.

[3] Deze rij toont overgangen wanneer HandleType- is SQL_HANDLE_STMT.

[4] Deze rij toont overgangen wanneer HandleType is SQL_HANDLE_DESC.

[5] Er is slechts één instructie toegewezen aan de verbinding.

[6] Er zijn meerdere instructies toegewezen voor de verbinding.

[7] De verbinding bevindt zich in de modus handmatig doorvoeren.

[8] De verbinding bevindt zich in de modus voor automatisch doorvoeren.

SQLFreeStmt

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH)[1] (IH) (IH) (IH) (IH) -- C5[3] --[4]
(IH)[2] (IH) (IH) (IH) (IH) -- --

[1] In deze rij worden transacties weergegeven wanneer het argument Optie is SQL_CLOSE.

[2] In deze rij worden transacties weergegeven wanneer het argument optie is SQL_UNBIND of SQL_RESET_PARAMS.

[3] De verbinding bevindt zich in de modus voor automatisch doorvoeren en er zijn geen cursors geopend voor instructies, behalve deze.

[4] De verbinding bevindt zich in de modus voor handmatig doorvoeren of in de modus voor automatisch doorvoeren en er is een cursor geopend op ten minste één andere instructie.

SQLGetConnectAttr

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
IH IH --[1] 08003[2] HY010 -- -- --

[1] Het argument Kenmerk is SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE of SQL_ATTR_TRACEFILE of een waarde is ingesteld voor het verbindingskenmerk.

[2] Het argument Kenmerk is niet SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE of SQL_ATTR_TRACEFILE en er is geen waarde ingesteld voor het verbindingskenmerk.

SQLGetDiagField en SQLGetDiagRec

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH)[1] -- -- -- -- -- --
(IH)[2] (IH) -- -- -- -- --
(IH)[3] (IH) (IH) (IH) (IH) -- --
(IH)[4] (IH) (IH) (IH) -- -- --

[1] In deze rij worden overgangen weergegeven wanneer HandleType is SQL_HANDLE_ENV.

[2] In deze rij worden overgangen weergegeven wanneer HandleType- is SQL_HANDLE_DBC.

[3] Deze rij toont overgangen wanneer HandleType- is SQL_HANDLE_STMT.

[4] Deze rij toont overgangen wanneer HandleType is SQL_HANDLE_DESC.

SQLGetEnvAttr

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
IH -- -- -- -- -- --

SQLGetFunctions

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
IH IH HY010 HY010 -- -- --

SQLGetInfo

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
IH IH --[1] 08003[2] 08003 -- -- --

[1] Het argument InfoType is SQL_ODBC_VER.

[2] Het argument InfoType is niet SQL_ODBC_VER.

SQLMoreResults

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --[3] C5[1]

[1] De verbinding bevindt zich in de modus voor automatisch doorvoeren en de aanroep naar SQLMoreResults heeft de verwerking van een resultatenset van een cursorspecificatie niet geïnitialiseerd.

[2] De verbinding bevindt zich in de modus voor automatisch doorvoeren en de aanroep naar SQLMoreResults heeft de verwerking van een resultatenset van een cursorspecificatie geïnitialiseerd.

[3] De verbinding bevindt zich in de modus handmatig doorvoeren.

SQLNativeSql

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (08003) (08003) -- -- --

SQLPrepare

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --

[1] De verbinding was in de modus voor automatisch doorvoeren of de gegevensbron heeft geen transactie gestart.

[2] De verbinding was in de modus handmatig doorvoeren en de gegevensbron begon een transactie.

SQLSetConnectAttr

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
IH IH --[1] 08003[2] HY010 --[3] 08002[4] HY011[5] --[3] 08002[4] HY011[5] --[3] en [6] C5[8] 08002[4] HY011[5] of [7]

[1] Het argument kenmerk is niet SQL_ATTR_TRANSLATE_LIB of SQL_ATTR_TRANSLATE_OPTION.

[2] Het argument kenmerk is SQL_ATTR_TRANSLATE_LIB of SQL_ATTR_TRANSLATE_OPTION.

[3] Het argument kenmerk is niet SQL_ATTR_ODBC_CURSORS of SQL_ATTR_PACKET_SIZE.

[4] Het argument kenmerk is SQL_ATTR_ODBC_CURSORS.

[5] Het argument Kenmerk is SQL_ATTR_PACKET_SIZE.

[6] Het argument kenmerk is niet SQL_ATTR_AUTOCOMMIT of het argument kenmerk is SQL_ATTR_AUTOCOMMIT en het instellen van dit kenmerk heeft de transactie niet doorgevoerd.

[7] Het argument Kenmerk is SQL_ATTR_TXN_ISOLATION.

[8] Het argument Kenmerk is SQL_ATTR_AUTOCOMMIT en het instellen van dit kenmerk heeft de transactie doorgevoerd.

SQLSetEnvAttr

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) -- -- (HY010) -- -- --

Alle andere ODBC-functies

C0

Geen Env.
C1

Vrije
C2

Toegewezen
C3

Gegevens nodig
C4

Verbonden
C5

Verklaring
C6

Transactie
(IH) (IH) (IH) (IH) (IH) -- --