Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Innan programmet kan ansluta till en datakälla eller drivrutin måste det allokera ett anslutningshandtag på följande sätt:
Programmet deklarerar en variabel av typen SQLHDBC. Den anropar sedan SQLAllocHandle och skickar adressen till den här variabeln, handtaget för miljön där anslutningen ska allokeras och alternativet SQL_HANDLE_DBC. Till exempel:
SQLHDBC hdbc1; SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);Driver Manager allokerar en struktur för att lagra information om instruktionen och returnerar anslutningshandtaget i variabeln.
Driver Manager anropar inte SQLAllocHandle i drivrutinen just nu eftersom den inte vet vilken drivrutin som ska anropas. Det fördröjer anropet av SQLAllocHandle i drivrutinen tills programmet anropar en funktion för att ansluta till en datakälla. För mer information, se Driver Managers roll i anslutningsprocessen, senare i det här avsnittet.
Observera att allokering av ett anslutningshandtag inte är detsamma som att läsa in en drivrutin. Drivrutinen laddas inte förrän en anslutningsfunktion anropas. När du har allokerat ett anslutningshandtag och innan du ansluter till drivrutinen eller datakällan är de enda funktioner som programmet kan anropa med anslutningshandtaget SQLSetConnectAttr, SQLGetConnectAttr eller SQLGetInfo med alternativet SQL_ODBC_VER. Om du anropar andra funktioner med anslutningshandtaget, till exempel SQLEndTran, returneras SQLSTATE 08003 (anslutningen är inte öppen). Fullständig information finns i Bilaga B: ODBC-tillståndsövergångstabeller.
Mer information om anslutningshandtag finns i Anslutningshandtag.