Megosztás:


Kapcsolatáttűnések

Az ODBC-kapcsolatok állapota a következő.

Állam Leírás
C0 Nem áthelyezett környezet, nem áthelyezett kapcsolat
C1 Lefoglalt környezet, nem lefoglalt kapcsolat
C2 Lefoglalt környezet, lefoglalt kapcsolat
C3 A kapcsolati függvénynek adatokra van szüksége
C4 Csatlakoztatott kapcsolat
C5 Csatlakoztatott kapcsolat, lefoglalt utasítás
C6 Csatlakoztatott kapcsolat, folyamatban lévő tranzakció. Lehetséges, hogy egy kapcsolat C6 állapotban van, és nincs hozzárendelve utasítás a kapcsolathoz. Tegyük fel például, hogy a kapcsolat manuális véglegesítési módban van, és C4 állapotban van. Ha ki van foglalva egy utasítás, végrehajtja (elindít egy tranzakciót), majd felszabadítja, a tranzakció aktív marad, de nincsenek utasítások a kapcsolaton.

Az alábbi táblázatok azt mutatják be, hogy az egyes ODBC-függvények hogyan befolyásolják a kapcsolat állapotát.

SQLAllocHandle

C0

Nincs env.
C1 Nincs áthelyezve C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
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] Ez a sor áttűnéseket jelenít meg, amikor HandleType SQL_HANDLE_ENV volt.

[2] Ez a sor HandleType SQL_HANDLE_DBC áttűnéseit jeleníti meg.

[3] Ez a sor HandleType SQL_HANDLE_STMT áttűnéseit jeleníti meg.

[4] Ez a sor HandleType SQL_HANDLE_DESC áttűnéseit jeleníti meg.

[5] Az SQLAllocHandle meghívása OutputHandlePtr egy érvényes leíróra mutat, amely felülírja a leíró előző tartalmát, és problémákat okozhat az ODBC-illesztőprogramok számára. Helytelen, hogy az ODBC-alkalmazásprogram kétszer hívja meg SQLAllocHandle ugyanazzal az alkalmazásváltozóval, amelyet a *OutputHandlePtr definiált, anélkül, hogy SQLFreeHandle hívna meg, hogy felszabadítsa a leírót, mielőtt újratelepítené. Az ODBC-leírók ilyen módon történő felülírása inkonzisztens viselkedéshez vagy hibákhoz vezethet az ODBC-illesztőprogramok részéről.

SQLBrowseConnect

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

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

SQLCloseCursor

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) -- --[1] C5[2]

[1] A kapcsolat manuális véglegesítési módban volt.

[2] A kapcsolat automatikus véglegesítési módban volt.

SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges és SQLTables

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --

[1] A kapcsolat automatikus véglegesítési módban volt, vagy az adatforrás nem kezdődött el tranzakcióval.

[2] A kapcsolat manuális véglegesítési módban volt, és az adatforrás tranzakcióba kezdett.

SQLConnect

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) C4 (08002) (08002) (08002) (08002)

SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField és SQLSetDescRec

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) --[1] -- --

[1] Ebben az állapotban az alkalmazás számára elérhető egyetlen leíró explicit módon van hozzárendelve.

SQLDataSources és SQLDrivers

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) -- -- -- -- -- --

SQLDisconnect

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (08003) C2 C2 C2 25000

SQLDriverConnect

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) C4 s -- n[f] (08002) (08002) (08002) (08002)

SQLEndTran

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH)[1] --[3] --[3] --[3] -- -- --[4] vagy ([5], [6] és [8]) C4[5] és [7] C5[5], [6] és [9]
(IH)[2] (IH) (08003) (08003) -- -- C5

[1] Ez a sor áttűnéseket jelenít meg, amikor HandleType SQL_HANDLE_ENV volt.

[2] Ez a sor HandleType SQL_HANDLE_DBC áttűnéseit jeleníti meg.

[3] Mivel a kapcsolat nincs csatlakoztatott állapotban, a tranzakció nem érinti.

[4] A véglegesítés vagy visszaállítás sikertelen volt a kapcsolaton. A függvény ebben az esetben SQL_ERROR ad vissza.

[5] A véglegesítés vagy visszaállítás sikeres volt a kapcsolaton. A függvény SQL_ERROR ad vissza, ha a véglegesítés vagy visszaállítás egy másik kapcsolaton meghiúsult, vagy a függvény SQL_SUCCESS ad vissza, ha a véglegesítés vagy visszaállítás sikeres volt az összes kapcsolaton.

[6] A kapcsolaton legalább egy utasítás volt lefoglalva.

[7] Nem voltak kiosztott utasítások a kapcsolaton.

[8] A kapcsolatnak legalább egy olyan utasítása volt, amelynél nyitott kurzor volt, és az adatforrás megőrzi a kurzorokat a tranzakciók véglegesítésekor vagy visszaállításakor, attól függően, hogy CompletionType SQL_COMMIT vagy SQL_ROLLBACK volt-e. További információ: SQLGetInfoSQL_CURSOR_COMMIT_BEHAVIOR és SQL_CURSOR_ROLLBACK_BEHAVIOR attribútumai.

[9] Ha a kapcsolat olyan utasításokkal rendelkezik, amelyeknél nyitott kurzorok voltak, a kurzorok nem maradtak meg a tranzakció véglegesítésekor vagy visszaállításakor.

SQLExecDirect és SQLExecute

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] C6[3] --

[1] A kapcsolat automatikus véglegesítési módban volt, és a végrehajtott utasítás nem volt kurzor,specifikáció (például SELECT utasítás); vagy a kapcsolat manuális véglegesítési módban volt, és a végrehajtott utasítás nem kezdeményezett tranzakciót.

[2] A kapcsolat automatikus véglegesítési módban volt, a végrehajtott utasítás pedig egy kurzor volt,specifikációs (például SELECT utasítás).

[3] A kapcsolat manuális véglegesítési módban volt, és az adatforrás tranzakcióba kezdett.

SQLFreeHandle

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(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] és [8] C5[6] és [8]
(IH)[4] (IH) (IH) (IH) -- -- --

[1] Ez a sor áttűnéseket jelenít meg, amikor HandleType SQL_HANDLE_ENV volt.

[2] Ez a sor HandleType SQL_HANDLE_DBC áttűnéseit jeleníti meg.

[3] Ez a sor HandleType SQL_HANDLE_STMT áttűnéseit jeleníti meg.

[4] Ez a sor HandleType SQL_HANDLE_DESC áttűnéseit jeleníti meg.

[5] A kapcsolaton csak egy utasítás volt lefoglalva.

[6] A kapcsolaton több utasítás volt lefoglalva.

[7] A kapcsolat manuális véglegesítési módban volt.

[8] A kapcsolat automatikus véglegesítési módban volt.

SQLFreeStmt

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH)[1] (IH) (IH) (IH) (IH) -- C5[3] --[4]
(IH)[2] (IH) (IH) (IH) (IH) -- --

[1] Ez a sor akkor jeleníti meg a tranzakciókat, ha az Option argumentum SQL_CLOSE.

[2] Ez a sor akkor jeleníti meg a tranzakciókat, ha a Option argumentum SQL_UNBIND vagy SQL_RESET_PARAMS.

[3] A kapcsolat automatikus véglegesítési módban volt, és a kurzorok csak ezen az utasításon voltak megnyitva.

[4] A kapcsolat manuális véglegesítési módban volt, vagy automatikus véglegesítési módban volt, és a kurzor legalább egy másik utasításon meg volt nyitva.

SQLGetConnectAttr

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
IH IH --[1] 08003[2] HY010 -- -- --

[1] A attribútum argumentuma SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE vagy SQL_ATTR_TRACEFILE volt beállítva, vagy a kapcsolatattribútum értéke lett beállítva.

[2] A attribútum argumentum nem volt SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE vagy SQL_ATTR_TRACEFILE, és a kapcsolatattribútumhoz nincs beállítva érték.

SQLGetDiagField és SQLGetDiagRec

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH)[1] -- -- -- -- -- --
(IH)[2] (IH) -- -- -- -- --
(IH)[3] (IH) (IH) (IH) (IH) -- --
(IH)[4] (IH) (IH) (IH) -- -- --

[1] Ez a sor áttűnéseket jelenít meg, amikor HandleType SQL_HANDLE_ENV volt.

[2] Ez a sor HandleType SQL_HANDLE_DBC áttűnéseit jeleníti meg.

[3] Ez a sor HandleType SQL_HANDLE_STMT áttűnéseit jeleníti meg.

[4] Ez a sor HandleType SQL_HANDLE_DESC áttűnéseit jeleníti meg.

SQLGetEnvAttr

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
IH -- -- -- -- -- --

SQLGetFunctions

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
IH IH HY010 HY010 -- -- --

SQLGetInfo

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
IH IH --[1] 08003[2] 08003 -- -- --

[1] Az InfoType argumentum SQL_ODBC_VER volt.

[2] Az InfoType argumentum nem SQL_ODBC_VER.

SQLMoreResults

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --[3] C5[1]

[1] A kapcsolat automatikus véglegesítési módban volt, és az SQLMoreResults hívása nem inicializálta a kurzor specifikációjának eredményhalmazának feldolgozását.

[2] A kapcsolat automatikus véglegesítési módban volt, és az SQLMoreResults hívása inicializálta a kurzor specifikációjának eredményhalmazának feldolgozását.

[3] A kapcsolat manuális véglegesítési módban volt.

SQLNativeSql

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (08003) (08003) -- -- --

SQLPrepare

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) --[1] C6[2] --

[1] A kapcsolat automatikus véglegesítési módban volt, vagy az adatforrás nem kezdődött el tranzakcióval.

[2] A kapcsolat manuális véglegesítési módban volt, és az adatforrás tranzakcióba kezdett.

SQLSetConnectAttr

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
IH IH --[1] 08003[2] HY010 --[3] 08002[4] HY011[5] --[3] 08002[4] HY011[5] --[3] és [6] C5[8] 08002[4] HY011[5] vagy [7]

[1] A attribútum argumentum nem SQL_ATTR_TRANSLATE_LIB vagy SQL_ATTR_TRANSLATE_OPTION.

[2] A attribútum argumentum SQL_ATTR_TRANSLATE_LIB vagy SQL_ATTR_TRANSLATE_OPTION volt.

[3] A attribútum argumentum nem SQL_ATTR_ODBC_CURSORS vagy SQL_ATTR_PACKET_SIZE.

[4] A attribútum argumentum SQL_ATTR_ODBC_CURSORS volt.

[5] Az attribútum argumentum SQL_ATTR_PACKET_SIZE volt.

[6] A attribútum argumentum nem SQL_ATTR_AUTOCOMMIT, vagy a attribútum argumentum SQL_ATTR_AUTOCOMMIT, és az attribútum beállítása nem véglegesíti a tranzakciót.

[7] A attribútum argumentum SQL_ATTR_TXN_ISOLATION volt.

[8] A attribútum argumentum SQL_ATTR_AUTOCOMMIT volt, és az attribútum beállítása véglegesítette a tranzakciót.

SQLSetEnvAttr

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) -- -- (HY010) -- -- --

Minden más ODBC-függvény

C0

Nincs env.
C1

Unallocated
C2

Kiosztott
C3

Adatokra van szükség
C4

Összekapcsolt
C5

Állítás
C6

Tranzakció
(IH) (IH) (IH) (IH) (IH) -- --