Allouer des handles et se connecter à SQL Server (ODBC)
Pour allouer les handles et se connecter à SQL Server
Incluez les fichiers d'en-tête ODBC Sql.h, Sqlext.h, Sqltypes.h.
Incluez le SQL Server fichier d’en-tête spécifique au pilote, Odbcss.h.
Appelez SQLAllocHandle avec un
HandleType
de SQL_HANDLE_ENV pour initialiser ODBC et allouer un handle d’environnement.Appelez SQLSetEnvAttr avec
Attribute
défini sur SQL_ATTR_ODBC_VERSION etValuePtr
défini sur SQL_OV_ODBC3 pour indiquer que l’application utilisera des appels de fonction au format ODBC 3.x.Si vous le souhaitez, appelez SQLSetEnvAttr pour définir d’autres options d’environnement, ou appelez SQLGetEnvAttr pour obtenir les options d’environnement.
Appelez SQLAllocHandle avec un
HandleType
de SQL_HANDLE_DBC pour allouer un handle de connexion.Si vous le souhaitez, appelez SQLSetConnectAttr pour définir les options de connexion ou appelez SQLGetConnectAttr pour obtenir les options de connexion.
Appelez SQLConnect pour utiliser une source de données existante pour vous connecter à SQL Server.
ou
Appelez SQLDriverConnect pour utiliser une chaîne de connexion pour vous connecter à SQL Server.
Une chaîne de connexion SQL Server complète au minimum se présente sous l’une des deux formes suivantes :
DSN=dsn_name;Trusted_connection=yes; DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;
Si la chaîne de connexion n'est pas complète,
SQLDriverConnect
peut demander les informations nécessaires. Ceci est contrôlé par la valeur spécifiée pour le paramètre DriverCompletion .- ou -
Appelez SQLBrowseConnect plusieurs fois de manière itérative pour générer la chaîne de connexion et vous connecter à SQL Server.
Si vous le souhaitez, appelez SQLGetInfo pour obtenir les attributs et le comportement du pilote pour la source de données SQL Server.
Allouez et utilisez les instructions.
Appelez SQLDisconnect pour vous déconnecter de SQL Server et rendre le handle de connexion disponible pour une nouvelle connexion.
Appelez SQLFreeHandle avec un
HandleType
de SQL_HANDLE_DBC pour libérer le handle de connexion.Appelez
SQLFreeHandle
avec unHandleType
de SQL_HANDLE_ENV pour libérer le handle d'environnement.
Important
Lorsque c'est possible, utilisez l'authentification Windows. Si l'authentification Windows n'est pas disponible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez rendre les informations d'identification persistantes, chiffrez-les avec l' API de chiffrement Win32.
Exemple
Cet exemple montre un appel à SQLDriverConnect
pour se connecter à un instance de SQL Server sans nécessiter une source de données ODBC existante. En passant une chaîne de connexion incomplète à SQLDriverConnect
, le pilote ODBC est contraint de demander à l'utilisateur d'entrer les informations manquantes.
#define MAXBUFLEN 255
SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;
SQLCHAR ConnStrIn[MAXBUFLEN] =
"DRIVER={SQL Server Native Client 10.0};SERVER=MyServer";
SQLCHAR ConnStrOut[MAXBUFLEN];
SQLSMALLINT cbConnStrOut = 0;
// Make connection without data source. Ask that driver
// prompt if insufficient information. Driver returns
// SQL_ERROR and application prompts user
// for missing information. Window handle not needed for
// SQL_DRIVER_NOPROMPT.
retcode = SQLDriverConnect(hdbc1, // Connection handle
NULL, // Window handle
ConnStrIn, // Input connect string
SQL_NTS, // Null-terminated string
ConnStrOut, // Address of output buffer
MAXBUFLEN, // Size of output buffer
&cbConnStrOut, // Address of output length
SQL_DRIVER_PROMPT);