Megosztás:


ODBC kapcsolatfogantyú kiosztása

Mielőtt az alkalmazás csatlakozni tud egy adatforráshoz vagy illesztőprogramhoz, le kell foglalnia egy kapcsolati leírót az alábbiak szerint:

  1. Az alkalmazás egy SQLHDBC típusú változót deklarál. Ezután meghívja az SQLAllocHandle-t , és átadja ennek a változónak a címét, a kapcsolat lefoglalásához használt környezet leíróját és a SQL_HANDLE_DBC lehetőséget. Például:

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. Az Illesztőprogram-kezelő lefoglal egy struktúrát, amelyben tárolhatja az utasítással kapcsolatos információkat, és visszaadja a kapcsolati leírót a változóban.

Az Illesztőprogram-kezelő jelenleg nem hívja meg az SQLAllocHandle-t az illesztőprogramban, mert nem tudja, melyik illesztőprogramot hívja meg. Késlelteti az SQLAllocHandle meghívását az illesztőprogramban, amíg az alkalmazás nem hív meg egy függvényt az adatforráshoz való csatlakozáshoz. További információkért lásd: A Driver Manager szerepe a kapcsolódási folyamatban, ennek a szakasznak egy későbbi részében.

Fontos megjegyezni, hogy egy kapcsolati leíró kiosztása nem ugyanaz, mint egy illesztőprogram betöltése. A meghajtó nincs betöltve, amíg meg nem hívják a kapcsolati függvényt. Így a kapcsolati leíró kiosztása után és az illesztőprogramhoz vagy az adatforráshoz való csatlakozás előtt az alkalmazás csak az SQLSetConnectAttr, az SQLGetConnectAttr vagy az SQLGetInfo függvényeket hívhatja meg a kapcsolati leíróval az SQL_ODBC_VER lehetőséggel. A kapcsolati leíróval (például SQLEndTran) rendelkező egyéb függvények meghívása az SQLSTATE 08003 értéket adja vissza (a kapcsolat nem nyitott meg). A részletekért tekintse meg a B függeléket: ODBC-állapotáttraszttáblák.

A kapcsolati leírókról további információt a Kapcsolati leírók című témakörben talál.