Création d’une application de pilote

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Important

SQL Server Native Client (souvent abrégé en SNAC) a été supprimé dans SQL Server 2022 (16.x) et SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB pour SQL Server (SQLOLEDB) hérité ne sont pas recommandés dans les nouveaux développements. Utilisez à la place le nouveau Microsoft OLE DB Driver (MSOLEDBSQL) pour SQL Server ou le Microsoft ODBC Driver for SQL Server le plus récent. Pour SQLNCLI fourni en tant que composant du moteur de base de données SQL Server (versions 2012 à 2019), consultez cette exception de support du cycle de vie.

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.
Pilote 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 un 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, y compris le pilote ODBC SQL Server Native Client, offrent des extensions ODBC spécifiques au pilote. Pour tirer parti de SQL Server Native Client extensions spécifiques au pilote ODBC, une application doit inclure le fichier d’en-tête sqlncli.h. Ce fichier d'en-tête contient :

  • SQL Server Native Client 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 types de données spécifiques.

  • SQL Server types de données définis par l’utilisateur spécifiques.

  • SQL Server Native Client types SQLGetInfo spécifiques au pilote ODBC.

  • SQL Server Native Client champs de diagnostics du pilote ODBC.

  • SQL Server codes de fonction dynamique de diagnostic spécifiques.

  • 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 SQL Server répertoires Include et Lib 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.

Dans cette section

Voir aussi

SQL Server Native Client (ODBC)