Connexion à Microsoft SQL Server (FireDAC)
Remonter à Connectivité des bases de données (FireDAC)
Cette rubrique explique comment établir une connexion à Microsoft SQL Server.
Sommaire
Versions prises en charge
Le pilote natif FireDAC prend en charge Microsoft SQL Server éditions Standard et Express version 2000 et ultérieure, ainsi que Microsoft SQL Azure. Pour une description sur comment établir une connexion à Microsoft SQL Server Compact Edition, voir Connexion à Microsoft SQL Server Compact Edition.
Logiciel client
Logiciel client Windows
FireDAC requiert l'installation de l'un des pilotes ODBC x86 ou x64 Microsoft SQL Server sur la station de travail :
- Pilote ODBC SQL Server pour la connectivité de SQL Server 2000. Il est probable que le pilote ODBC est déjà installé sur votre station de travail. Sinon, voir Informations détaillées (EN).
- SQL Native Client pour la connectivité de SQL Server 2000 et 2005. Nous vous recommandons fortement d'installer SQL Native Client si votre application doit fonctionner avec SQL Server 2005. Voir Microsoft SQL Server Native Client (EN).
- SQL Server Native Client NN.N pour la connectivité de SQL Server 2000, 2005, 2008, 2012 et SQL Azure. Nous vous recommandons fortement d'installer SQL Server Native Client NN.N si votre application doit fonctionner avec SQL Server 2008, 2012 ou SQL Azure. Voir Microsoft SQL Server 2008 Native Client (EN).
- SQL Server Native Client 11.0 pour la connectivité de la base de données locale.
- ODBC Driver 13 pour la connectivité avec SQL Server 2008, 2008 R2, 2012, 2014, et 2016, et SQL Azure.
Remarque : SQL Server Native Client 10.0 (SQL Server 2008) peut échouer à appeler une procédure stockée lorsqu'il est connecté à SQL Server 2000. Le symptôme de ce problème est le message d'erreur "Syntaxe incorrecte proche de {". Dans ce cas, utilisez le pilote ODBC de la distribution SQL Server 2000 ou 2005.
Si le pilote ODBC SQL Server n'a pas été installé correctement, une exception est déclenchée lorsque vous tentez d'établir une connexion :
[FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Logiciel client OS X
FireDAC requiert :
- la bibliothèque du gestionnaire de pilote ODBC x86, UnixODBC (libodbc.dylib).
- le pilote ODBC FreeTDS x86 (libtdsodbc.dylib).
FreeTDS peut être transféré à partir de CVS dans un dossier de votre répertoire home (plus d'infos 1) (plus d'infos 2). Pour installer FreeTDS sur OS X, utilisez les commandes :
cvs -z3 -d:pserver:anonymous@freetds.cvs.sourceforge.net:/cvsroot/freetds checkout -P freetdsc cd freetds ./autogen.sh ./configure --with-tdsver=8.0 --with-unixodbc=/usr/local make sudo make install echo [FreeTDS] > tds.driver.template echo Description=v0.82 with protocol v8.0 >> tds.driver.template echo Driver=/usr/local/lib/libtdsodbc.so >> tds.driver.template odbcinst -i -d -f tds.driver.template cd ..
Notez que vous devrez peut-être également installer l'utilitaire gawk. A ce stade, vous pouvez configurer un DSN ODBC ou tester la connexion FireDAC.
Notez que le pilote ODBC FreeTDS n'est pas aussi performant et stable que le pilote ODBC Microsoft d'origine.
Logiciel client Linux
FireDAC requiert la bibliothèque du gestionnaire de pilotes ODBC 64 bits et le pilote Microsoft ODBC Driver 11 pour SQL Server sur Linux.
Pour installer le pilote Microsoft ODBC Driver 11 pour SQL Server sur Linux :
-
Sur Ubuntu Server 16.04 LTS, exécutez les commandes suivantes :
sudo apt-get install openssl libkrb5-3 libc6 e2fsprogs sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.10 sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so.10 wget http://download.microsoft.com/download/B/C/D/BCDD264C-7517-4B7D-8159-C99FC5535680/RedHat6/msodbcsql-11.0.2270.0.tar.gz tar -xavf msodbcsql-11.0.2270.0.tar.gz sudo bash msodbcsql-11.0.2270.0/install.sh install --accept-license --force
- Sur Red Hat Enterprise Linux 7, téléchargez l'installateur correspondant et suivez les instructions d'installation.
Liaison du pilote
Pour lier le pilote :
- déposez un composant TFDPhysMSSQLDriverLink à partir de la page "Liens FireDAC" de la palette.
- ou incluez l'unité FireDAC.Phys.MSSQL dans la clause uses.
Paramètres de définition de la connexion
Pour établir la connexion au SGBD Microsoft SQL Server, la plupart des applications vous demandent de spécifier les paramètres DriverID, Server, Database, OSAuthent, User_Name et Password, voir Définition d'une connexion (FireDAC) pour plus de détails.
DriverID=MSSQL
Paramètre | Description | Valeur exemple |
---|---|---|
Server | Nom d'un serveur exécutant SQL Server sur le réseau. La valeur doit être le nom d'un serveur sur le réseau ou le nom d'une entrée de serveur avancé SQL Server Client Network Utility.
Lorsque vous établissez une connexion à SQL Azure, vous devez ajouter le préfixe "tcp:" au début du nom du serveur.
|
|
Port | Uniquement pour OS X. Spécifie le port d'écoute de SQL Server.
Pour la plate-forme Windows, le port peut être spécifié après une virgule dans la valeur du paramètre Server. Par exemple, Server=host, port. Le port par défaut est 1433. |
|
Database | Nom de la base de données par défaut pour la connexion. Si le paramètre Database n'est pas spécifié, la base de données par défaut spécifiée pour la connexion est utilisée. | Northwind |
OSAuthent |
Contrôle le mode d'authentification :
|
No |
User_Name | Nom de connexion à SQL Server, si OSAuthent=No.
Lorsque vous établissez une connexion à SQL Azure, vous devez ajouter le suffixe "@<server>" à votre nom d'utilisateur. |
|
Password | Mot de passe de connexion à SQL Server, si OSAuthent=No.
Notez que les mots de passe comportant '{' et '}' ne sont pas pris en charge. |
|
Network | Nom d'une bibliothèque de liaison dynamique de bibliothèque réseau. Le nom ne doit pas nécessairement inclure le chemin d'accès et ne doit pas inclure l'extension de nom de fichier .dll. | dbnmpntw |
Address | Adresse réseau du serveur exécutant une instance de SQL Server. Address est généralement le nom réseau du serveur, mais il peut s'agir d'autres noms, par exemple un canal, ou un port TCP/IP et une adresse de socket. | |
MARS |
Contrôle la prise en charge MARS (Multiple Active Result Sets) dans une connexion :
MARS est une fonctionnalité prise en charge par SQL 2005 et ultérieur ou par SQL Azure. Sachez que l'activation de la fonctionnalité MARS peut entraîner une dégradation des performances. Pour de plus amples informations sur MARS, voir : Using Multiple Active Result Sets (MARS) (EN) |
No |
Workstation | ID de la station de travail. Généralement, il s'agit du nom réseau de l'ordinateur sur lequel réside l'application (facultatif). Si elle est spécifiée, cette valeur est stockée dans la colonne hostname de master.dbo.sysprocesses column et est retournée par sp_who et la fonction HOST_NAME de Transact-SQL. | Bookkeeper1 |
Language | Nom du langage SQL Server (facultatif). Lors de la connexion à un serveur SQL Server ayant plusieurs langages, Language spécifie le jeu de messages utilisé pour la connexion. | |
Encrypt |
Contrôle le cryptage du trafic réseau :
|
Yes |
LoginTimeout | Contrôle la durée, en secondes, s'écoulant avant qu'une application dépasse le temps imparti pour établir la connexion. 0 spécifie un délai d'attente infini (valeur par défaut). | 30 |
VariantFormat |
Contrôle la représentation du type de données SQL_VARIANT :
|
Binary |
ExtendedMetadata |
Contrôle la description étendue des ensembles de résultats d'une requête :
|
True |
ApplicationName | Nom de l'application. Si elle est spécifiée, cette valeur est stockée dans la colonne program_name de master.dbo.sysprocesses column et est retournée par sp_who et la fonction APP_NAME de Transact-SQL. | AllBooks |
ODBCAdvanced | Vous permet de spécifier la valeur des paramètres de connexion ODBC supplémentaires. | MARS_Connection=no;Regional=yes |
MetaDefCatalog | Nom de la base de données par défaut. En mode conception, le code exclut le nom du catalogue du nom d'objet s'il est égal à MetaDefCatalog. | Northwind |
MetaDefSchema | Nom du schéma par défaut. En mode conception, le code exclut le nom du schéma du nom d'objet s'il est égal à MetaDefSchema. | dbo |
MetaCaseIns |
Contrôle le respect de la casse des métadonnées :
|
True |
MetaCaseInsCat |
Contrôle le respect de la casse des noms du catalogue SQL Server. Il peut prendre l'une des valeurs suivantes :
|
True |
Cas d'utilisation
Utilisation d'une connexion sécurisée
Pour utiliser l'encryptage TLS/SSL, transmettez la paire clé-valeur TrustServerCertificate=yes
dans la valeur du paramètre ODBCAdvanced :
ODBCAdvanced=TrustServerCertificate=yes
Autres cas d'utilisation
- Etablir la connexion à l'instance SQL Server locale en utilisant l'authentification SQL Server :
DriverID=MSSQL Server=127.0.0.1 Database=Northwind User_Name=sa MetaDefSchema=dbo MetaDefCatalog=Northwind
- Etablir la connexion à SQL Express 2005 en utilisant l'authentification Windows :
DriverID=MSSQL Server=DA\SQLEXPRESS Database=Northwind OSAuthent=Yes MARS=no
- Etablir la connexion à SQL Azure. Notez la présence du suffixe "@<server>" dans User_Name et du préfixe "tcp:" dans les paramètres Server :
DriverID=MSSQL Server=tcp:nasdfert6.database.windows.net Database=Northwind User_Name=addemo@nasdfert6 Password=asd123zxc Encrypt=Yes MetaDefSchema=dbo MetaDefCatalog=Northwind
- Etablir la connexion à une base de données locale :
DriverID=MSSQL Server=(localdb)\\v11.0 Database=master OSAuthent=Yes
- Etablir une connexion à une base de données locale et attacher un fichier de base de données :
Server=(localdb)\\v11.0 DriverID=MSSQL ODBCAdvanced=AttachDbFileName=C:\\Users\\Alex\\ADDemo.mdf
Voir aussi
- Paramètres de connexion communs
- FAQ
- Comment configurer les pilotes FireDAC
- Comment gérer les définitions des connexions FireDAC
Exemples
- Exemple FireDAC MS SQL