Création d’une application de pilote
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Important
SQL Server Native Client (SNAC) n’est pas fourni avec :
- 2022 - SQL Server 16 (16.x) et versions ultérieures
- SQL Server Management Studio 19 et versions ultérieures
SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB hérité pour SQL Server (SQLOLEDB) ne sont pas recommandés pour le nouveau développement d’applications.
Pour les nouveaux projets, utilisez l'un des pilotes suivants :
Pour SQLNCLI qui est fourni en tant que composant du moteur de base de données SQL Server (versions 2012 à 2019), consultez cette exception du cycle de vie du support.
L'architecture ODBC possède quatre composants qui effectuent les fonctions ci-dessous.
Composant | Fonction |
---|---|
Application | Appelle les fonctions ODBC pour communiquer avec une source de données ODBC, soumet les instructions SQL et traite les jeux de résultats. |
Gestionnaire de pilote | Gère la communication entre une application et tous les pilotes ODBC utilisés par cette application. |
Driver | Traite tous les appels des fonctions ODBC à partir de l'application, se connecte à une source de données, passe les instructions SQL de l'application à la source de données et retourne les résultats à l'application. Si nécessaire, le pilote traduit des données ODBC SQL de l'application en données SQL natif utilisées par la source de données. |
Source de données | Contient toutes les informations dont un pilote a besoin pour accéder à une instance spécifique des données dans un SGBD. |
Une application qui utilise le pilote ODBC SQL Server Native Client pour communiquer avec une instance de SQL Server effectue les tâches suivantes :
Elle se connecte à une source de données.
Elle envoie les instructions SQL à la source de données.
Elle traite les résultats des instructions provenant de la source de données.
Elle traite les erreurs et les messages.
Elle met un terme à la connexion à la source de données.
Une application plus complexe écrite pour le pilote ODBC SQL Server Native Client peut également effectuer les tâches suivantes :
Utiliser des curseurs pour contrôler l'emplacement dans un jeu de résultats
Demander des opérations de validation ou de restauration pour le contrôle des transactions
Effectuer des transactions distribuées qui impliquent deux serveurs ou plus
Exécuter des procédures stockées sur le serveur distant
Appeler des fonctions de catalogue pour obtenir des informations sur les attributs d'un jeu de résultats
Effectuer des opérations de copie en bloc
Gérer les opérations de données volumineuses (varchar(max), nvarchar(max) et varbinary(max)
Utiliser la logique de reconnexion pour faciliter le basculement lorsque la mise en miroir de bases de données est configurée
Enregistrer des données de performances et des requêtes longues
Pour effectuer des appels de fonction ODBC, une application C ou C++ doit inclure les fichiers d'en-tête sql.h, sqlext.h et sqltypes.h. Pour effectuer des appels aux fonctions API du programme d'installation ODBC, une application doit inclure le fichier d'en-tête odbcinst.h. Une application ODBC Unicode doit inclure le fichier d'en-tête sqlucode.h. Les applications ODBC doivent être liées au fichier odbc32.lib. Les applications ODBC qui appellent les fonctions API du programme d'installation ODBC doivent être liées au fichier odbccp32.lib. Ces fichiers sont inclus dans le Kit de développement Platform SDK de Windows.
De nombreux pilotes ODBC, notamment le pilote ODBC SQL Server Native Client, offrent des extensions ODBC spécifiques au pilote. Pour tirer parti des extensions spécifiques au pilote ODBC SQL Server Native Client, une application doit inclure le fichier d’en-tête sqlncli.h. Ce fichier d'en-tête contient :
Attributs de connexion spécifiques au pilote ODBC SQL Server Native Client.
Attributs d’instruction spécifiques au pilote ODBC SQL Server Native Client.
Attributs de colonne spécifiques au pilote ODBC SQL Server Native Client.
Types de données spécifiques à SQL Server.
Types de données définis par l’utilisateur spécifiques à SQL Server.
Types SQL Server Native Client ODBC spécifiques au pilote SQLGetInfo .
Champs de diagnostic du pilote ODBC SQL Server Native Client.
Codes de fonction dynamique de diagnostic propres à SQL Server.
Définitions de type C/C++ pour les types de données C natifs spécifiques à SQL Server (retournés lorsque les colonnes liées au type de données C SQL_C_BINARY).
Tapez la définition pour la structure de données SQLPERF.
Copiez en bloc les macros et les prototypes pour prendre en charge l'utilisation d'API de copie en bloc par le biais d'une connexion ODBC.
Appelez les fonctions API de métadonnées de requête distribuée pour obtenir les listes des serveurs liés et leurs catalogues.
Toute application ODBC C ou C++ qui utilise la fonctionnalité de copie en bloc du pilote ODBC SQL Server Native Client doit être liée au fichier sqlncli11.lib. Les applications qui appellent les fonctions API de métadonnées de requête distribuée doivent également être liées à sqlncli11.lib. Les fichiers sqlncli.h et sqlncli11.lib sont distribués dans le cadre des outils du développeur SQL Server. Les répertoires INCLUDE et Lib SQL Server doivent se trouver dans les chemins INCLUDE et LIB du compilateur comme dans les éléments suivants :
LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;
Une décision de conception à prendre tôt dans le processus de génération d'une application est de savoir si l'application doit avoir plusieurs appels ODBC en attente en même temps. Il existe deux méthodes de prise en charge des appels ODBC concurrents multiples ; elles sont décrites dans les autres rubriques de cette section. Pour plus d’informations, consultez la référence du programmeur ODBC.