Partager via


Allocation d’un handle de connexion dans ODBC

Avant que l’application puisse se connecter à une source de données ou à un pilote, elle doit allouer un handle de connexion, comme suit :

  1. L’application déclare une variable de type SQLHDBC. Il appelle ensuite SQLAllocHandle et transmet l’adresse de cette variable, le handle de l’environnement dans lequel allouer la connexion et l’option SQL_HANDLE_DBC. Par exemple :

    SQLHDBC hdbc1;  
    
    SQLAllocHandle(SQL_HANDLE_DBC, henv1, &hdbc1);  
    
  2. Le Gestionnaire de pilotes alloue une structure dans laquelle stocker des informations sur l’instruction et retourne le handle de connexion dans la variable.

Le Gestionnaire de pilotes n’appelle pas SQLAllocHandle dans le pilote pour l’instant, car il ne sait pas quel pilote appeler. Il retarde l’appel de SQLAllocHandle dans le pilote jusqu’à ce que l’application appelle une fonction pour se connecter à une source de données. Pour plus d’informations, consultez le rôle du Gestionnaire de pilotes dans le processus d’Connecter ion, plus loin dans cette section.

Il est important de noter que l’allocation d’un handle de connexion n’est pas la même que le chargement d’un pilote. Le pilote n’est pas chargé tant qu’une fonction de connexion n’est pas appelée. Par conséquent, après avoir alloué un handle de connexion et avant de se connecter au pilote ou à la source de données, les seules fonctions que l’application peut appeler avec le handle de connexion sont SQLSet Connecter Attr, SQLGet Connecter Attr ou SQLGetInfo avec l’option SQL_ODBC_VER. L’appel d’autres fonctions avec le handle de connexion, tel que SQLEndTran, retourne SQLSTATE 08003 (Connecter ion non ouverte). Pour plus d’informations, consultez l’annexe B : Tables de transition d’état ODBC.

Pour plus d’informations sur les handles de connexion, consultez Connecter handles d’authentification.