Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Après avoir alloué l’environnement et les handles de connexion et défini tous les attributs de connexion, l’application se connecte à la source de données ou au pilote. Il existe trois fonctions que vous pouvez utiliser pour vous connecter :
SQLConnect
SQLDriverConnect
SQLBrowseConnect
Pour plus d’informations sur l’établissement de connexions à une source de données, notamment les différentes options de chaîne de connexion disponibles, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.
SQLConnect
SQLConnect est la fonction de connexion la plus simple. Il accepte trois paramètres : un nom de source de données, un ID d’utilisateur et un mot de passe. Utilisez SQLConnect lorsque ces trois paramètres contiennent toutes les informations nécessaires pour se connecter à la base de données. Pour ce faire, générez une liste de sources de données à l’aide de SQLDataSources ; invitez l’utilisateur à entrer une source de données, un ID d’utilisateur et un mot de passe ; puis appelez SQLConnect.
SQLConnect suppose qu’un nom de source de données, un ID d’utilisateur et un mot de passe sont suffisants pour se connecter à une source de données et que la source de données ODBC contient toutes les autres informations dont le pilote ODBC a besoin pour établir la connexion. Contrairement à SQLDriverConnect et SQLBrowseConnect, SQLConnect n’utilise pas de chaîne de connexion.
SQLDriverConnect
SQLDriverConnect est utilisé lorsque plus d’informations que le nom de source de données, l’ID d’utilisateur et le mot de passe sont requis. L’un des paramètres de SQLDriverConnect est une chaîne de connexion contenant des informations spécifiques au pilote. Vous pouvez utiliser SQLDriverConnect au lieu de SQLConnect pour les raisons suivantes :
Pour spécifier des informations spécifiques au pilote au moment de la connexion.
Pour demander au pilote d’inviter l’utilisateur à entrer des informations de connexion.
Pour vous connecter sans utiliser de source de données ODBC.
La chaîne de connexion SQLDriverConnect contient une série de paires mot clé-valeur qui spécifient toutes les informations de connexion prises en charge par un pilote ODBC. Chaque pilote prend en charge les mots clés ODBC standard (DSN, FILEDSN, DRIVER, UID, PWD et SAVEFILE) en plus des mots clés spécifiques au pilote pour toutes les informations de connexion prises en charge par le pilote. SQLDriverConnect peut être utilisé pour se connecter sans source de données. Par exemple, une application conçue pour établir une connexion « sans DSN » à une instance de SQL Server peut appeler SQLDriverConnect avec une chaîne de connexion qui définit l’ID de connexion, le mot de passe, la bibliothèque réseau, le nom du serveur à utiliser et la base de données par défaut à utiliser.
Lorsque vous utilisez SQLDriverConnect, il existe deux options permettant d’inviter l’utilisateur à entrer les informations de connexion nécessaires :
Boîte de dialogue Application
Vous pouvez créer une boîte de dialogue d’application qui invite les informations de connexion, puis appelle SQLDriverConnect avec un handle de fenêtre NULL et DriverCompletion défini sur SQL_DRIVER_NOPROMPT. Ces paramètres empêchent le pilote ODBC d’ouvrir sa propre boîte de dialogue. Cette méthode est utilisée lorsqu’il est important de contrôler l’interface utilisateur de l’application.
Boîte de dialogue Pilote
Vous pouvez coder l’application pour passer un handle de fenêtre valide à SQLDriverConnect et définir le paramètre DriverCompletion sur SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT ou SQL_DRIVER_COMPLETE_REQUIRED. Le pilote génère ensuite une boîte de dialogue pour inviter l’utilisateur à entrer des informations de connexion. Cette méthode simplifie le code de l’application.
SQLBrowseConnect
SQLBrowseConnect, comme SQLDriverConnect, utilise une chaîne de connexion. Toutefois, à l’aide de SQLBrowseConnect, une application peut construire une chaîne de connexion complète de manière itérative avec la source de données au moment de l’exécution. Cela permet à l’application d’effectuer deux opérations :
Créez ses propres boîtes de dialogue pour demander ces informations, conservant ainsi le contrôle sur son interface utilisateur.
Parcourez le système pour rechercher les sources de données qui peuvent être utilisées par un pilote particulier, éventuellement en plusieurs étapes.
Par exemple, l’utilisateur peut d’abord parcourir le réseau pour les serveurs et, après avoir choisi un serveur, parcourir le serveur pour les bases de données accessibles par le pilote.
Lorsque SQLBrowseConnect termine une connexion réussie, elle retourne une chaîne de connexion qui peut être utilisée lors des appels suivants à SQLDriverConnect.
Le pilote ODBC SQL Server Native Client retourne toujours SQL_SUCCESS_WITH_INFO sur un SQLConnect, SQLDriverConnect ou SQLBrowseConnect réussi. Lorsqu’une application ODBC appelle SQLGetDiagRec après avoir obtenu SQL_SUCCESS_WITH_INFO, elle peut recevoir les messages suivants :
5701
Indique que SQL Server place le contexte de l’utilisateur dans la base de données par défaut définie dans la source de données ou dans la base de données par défaut définie pour l’ID de connexion utilisé dans la connexion si la source de données n’a pas de base de données par défaut.
5703
Indique la langue utilisée sur le serveur.
L’exemple suivant montre le message retourné sur une connexion réussie par l’administrateur système :
szSqlState = "01000", *pfNativeError = 5701,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed database context to 'pubs'."
szSqlState = "01000", *pfNativeError = 5703,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
Changed language setting to 'us_english'."
Vous pouvez ignorer les messages 5701 et 5703 ; elles ne sont qu’informationnelles. Toutefois, vous ne devez pas ignorer un code de retour SQL_SUCCESS_WITH_INFO, car les messages autres que 5701 ou 5703 peuvent être retournés. Par exemple, si un pilote se connecte à un serveur exécutant une instance de SQL Server avec des procédures stockées de catalogue obsolètes, l’une des erreurs retournées via SQLGetDiagRec après une SQL_SUCCESS_WITH_INFO est :
SqlState: 01000
pfNative: 0
szErrorMsg: "[Microsoft][SQL Server Native Client]The ODBC
catalog stored procedures installed on server
my65server are version 06.50.0193; version 07.00.0205
or later is required to ensure proper operation.
Please contact your system administrator."
La fonction de gestion des erreurs d’une application pour les connexions SQL Server doit appeler SQLGetDiagRec jusqu’à ce qu’elle retourne SQL_NO_DATA. Il doit ensuite agir sur tous les messages autres que ceux avec un code pfNative de 5701 ou 5703.