Megosztás a következőn keresztül:


SQLDisconnect függvény

megfelelőségi
Bevezetett verzió: ODBC 1.0 szabványmegfelelőség: ISO 92

összefoglaló
SQLDisconnect egy adott kapcsolati leíróhoz társított kapcsolatot zár be.

Szintaxis

  
SQLRETURN SQLDisconnect(  
     SQLHDBC     ConnectionHandle);  

Érvek

ConnectionHandle
[Bemenet] Kapcsolati leíró.

Visszatér

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE vagy SQL_STILL_EXECUTING.

Diagnosztika

Amikor az SQLDisconnect SQL_ERROR vagy SQL_SUCCESS_WITH_INFO ad vissza, a társított SQLSTATE-érték a SQLGetDiagRec meghívásával SQL_HANDLE_DBC HandleType és ConnectionHandleHandle meghívásával szerezhető be. Az alábbi táblázat a SQLDisconnect által gyakran visszaadott SQLSTATE-értékeket sorolja fel, és a függvény kontextusában ismerteti azokat; a(z) "(DM)" jelölés megelőzi a Driver Manager által visszaadott SQLSTATES-ek leírását. 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 Leírás
01000 Általános figyelmeztetés Illesztőprogram-specifikus tájékoztató üzenet. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
01002 Kapcsolatbontási hiba Hiba történt a kapcsolat bontása során. A kapcsolat bontása azonban sikeres volt. (A függvény SQL_SUCCESS_WITH_INFO ad vissza.)
08003 A kapcsolat nincs megnyitva (DM) Az argumentumban megadott kapcsolat ConnectionHandle nem volt megnyitva.
25000 Érvénytelen tranzakció állapota Folyamatban volt egy tranzakció a ConnectionHandle argumentum által megadott kapcsolaton. A tranzakció aktív marad.
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 Az illesztőprogram nem tudta lefoglalni a függvény végrehajtásának vagy befejezésének támogatásához szükséges memóriát.
HY008 Művelet megszakítva Az aszinkron feldolgozás engedélyezve lett a ConnectionHandle. A függvény meghívása megtörtént, és mielőtt befejezte volna SQLCancelHandle függvény meghívása a ConnectionHandle. Ezután a függvényt ismét meghívta a ConnectionHandle.

A függvény meghívása megtörtént, és mielőtt befejeződött volna SQLCancelHandle meghívása a ConnectionHandle egy másik szálról egy többszálas alkalmazásból.
HY010 Függvényütemezési hiba (DM) Aszinkron módon végrehajtó függvényt hívott meg egy StatementHandle, amely a ConnectionHandle társított, és továbbra is végrehajtásra került SQLDisconnect meghívásakor.

(DM) A ConnectionHandle egy aszinkron módon végrehajtó függvényt hívott meg (nem ez).

(DM) SQLExecute, SQLExecDirect, SQLBulkOperationsvagy SQLSetPos a ConnectionHandle társított StatementHandle kért, és visszaadott SQL_NEED_DATA. Ezt a függvényt az összes adatvégrehajtási paraméter vagy oszlop adatküldése előtt hívták meg.
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.
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) További információ a felfüggesztett állapotról: SQLEndTran függvény.
HYT01 A kapcsolat időtúllépése lejárt A kapcsolat időtúllépési időtartama lejárt, mielőtt az adatforrás válaszolt a kérésre, és a kapcsolat továbbra is aktív. A kapcsolat időtúllépési időszaka SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Az illesztőprogram nem támogatja ezt a függvényt (DM) A ConnectionHandle társított illesztőprogram nem támogatja a függvényt.
IM017 A lekérdezés aszinkron értesítési módban le van tiltva Az értesítési modell használata esetén a lekérdezés le van tiltva.
IM018 SQLCompleteAsync nem lett meghívva az előző aszinkron művelet végrehajtásához ezen a leírón. Ha a leíró előző függvényhívása SQL_STILL_EXECUTING ad vissza, és ha az értesítési mód engedélyezve van, SQLCompleteAsync kell meghívni a leíróra a művelet utófeldolgozásához és befejezéséhez.

Megjegyzések

Ha egy alkalmazás SQLDisconnect- hív meg, miután SQLBrowseConnect visszaadja SQL_NEED_DATA, és mielőtt egy másik visszatérési kódot ad vissza, az illesztőprogram megszakítja a kapcsolat böngészési folyamatát, és a kapcsolatot nem összekapcsolt állapotba adja vissza.

Ha egy alkalmazás meghívja SQLDisconnect, miközben a kapcsolati leíróhoz nem megfelelő tranzakció tartozik, az illesztőprogram az SQLSTATE 25000 (Érvénytelen tranzakció állapota) értéket adja vissza, amely azt jelzi, hogy a tranzakció változatlan, és a kapcsolat nyitva van. A nem teljes tranzakció olyan tranzakció, amelyet nem véglegesítettek vagy nem hajtottak vissza SQLEndTran.

Ha egy alkalmazás SQLDisconnect- hív meg, mielőtt felszabadította volna a kapcsolathoz társított összes utasítást, az illesztőprogram, miután sikeresen leválasztotta az adatforrást, felszabadítja azokat az utasításokat és az összes leírót, amelyek explicit módon lettek lefoglalva a kapcsolaton. Ha azonban a kapcsolathoz társított egy vagy több utasítás továbbra is aszinkron módon fut, SQLDisconnect a HY010 SQLSTATE-értékkel (függvényütemezési hiba) SQL_ERROR ad vissza. Emellett SQLDisconnect felszabadítja a kapcsolaton explicit módon lefoglalt összes társított utasítást és leírót, ha a kapcsolat felfüggesztett állapotban van, vagy ha SQLDisconnect sikeresen megszakította SQLCancelHandle.

Az alkalmazás SQLDisconnecthasználatával kapcsolatos információkért lásd: Adatforrás vagy illesztőprogramleválasztása.

Kapcsolat leválasztása készletezett kapcsolatról

Ha a kapcsolatkészletezés engedélyezve van egy megosztott környezetben, és egy alkalmazás meghívja SQLDisconnect- egy adott környezetben lévő kapcsolaton, a kapcsolat visszakerül a kapcsolatkészletbe, és továbbra is elérhető az ugyanazon megosztott környezetet használó más összetevők számára.

Példa kódra

Lásd: MINTA ODBC Program, SQLBrowseConnect függvényés SQLConnect-függvény.

További információ: Lát
Fogópont kiosztása SQLAllocHandle függvény
Csatlakozás adatforráshoz SQLConnect-függvény
Csatlakozás adatforráshoz kapcsolati sztring vagy párbeszédpanel használatával SQLDriverConnect-függvény
Véglegesítési vagy visszaállítási művelet végrehajtása SQLEndTran függvény
Kapcsolati leíró felszabadítása SQLFreeConnect-függvény

Lásd még:

ODBC API-referencia
ODBC-fejlécfájlok