Connexion à une source de données ODBC (FireDAC)
Remonter à Connectivité des bases de données (FireDAC)
Cette rubrique explique comment établir la connexion à une source de données ODBC.
Sommaire
Versions supportées
Les pilotes de pont ODBC de FireDAC supportent les pilotes ODBC Niveau 2, 3.
Logiciel client
Logiciel client Windows
FireDAC requiert l'installation du pilote ODBC x86 ou x64 conformément à la spécification ODBC. Veuillez consulter la documentation suivante relative au pilote ODBC :
Remarque : Certains pilotes ODBC (comme le pilote ODBC Oracle v 11) comportent un bogue qui provoque une violation d'accès lors de la récupération des données. Pour éviter ce bogue, définissez FetchOptions.RowsetSize sur
1
.
Logiciel client Linux et macOS
FireDAC requiert l'installation d'unixODBC, ainsi que des ODBC appropriés.
- Remarque : Certains pilotes ODBC pour Linux, tel que celui de Teradata, incluent le gestionnaire de pilotes DataDirect, que vous devez configurer pour l'encodage Unicode.
Liaison du pilote
Pour lier le pilote :
- déposez un composant TFDPhysODBCDriverLink à partir de la page "FireDAC Links" de la palette de composants
- ou incluez l'unité FireDAC.Phys.ODBC dans la clause uses.
Paramètres de définition de la connexion
Il y a deux façons principales de se connecter à la source de données ODBC :
- Configurez DSN à l'aide du panneau de configuration Administrateur ODBC, puis spécifiez le nom DSN dans le paramètre DataSource ;
- Dans l'Editeur de connexion FireDAC, spécifiez la valeur du paramètre ODBCDriver, puis cliquez sur le bouton Expert. Suivez les instructions de l'expert. Pour plus de détails, voir Définition d'une connexion (FireDAC).
Remarque : Les paramètres DataSource et ODBCDriver sont mutuellement exclusifs. Chaque pilote ODBC a ses propres paramètres de connexion. Ils peuvent être spécifiés comme valeur du paramètre ODBCAdvanced.
DriverID=ODBC
Paramètre | Description | Valeur exemple |
---|---|---|
ODBCDriver | Nom du pilote ODBC à utiliser pour la connexion. S'il est spécifié, les autres paramètres de connexion doivent être spécifiés dans le paramètre ODBCAdvanced. | SQL SERVER |
ODBCAdvanced | Vous permet de spécifier le nom des paramètres de connexion ODBC sur des paires de valeurs. Elles doivent être séparées par un ';'. | |
ODBCVersion | Spécifie la version du gestionnaire de pilotes ODBC. Valeurs possibles : 3.8 ou 3.0 (valeur par défaut). | 3.8 |
DataSource | Nom du DSN existant à utiliser pour la connexion. | MySAPDB |
LoginTimeout | Contrôle la durée, en secondes, s'écoulant avant qu'une application dépasse le temps imparti pour établir une connexion (la valeur 0 indique une attente infinie). | 30 |
NumericFormat | Contrôle le mode de liaison NUMBER interne. Le mode (par défaut) le plus efficace est "Binary". En revanche, certains pilotes ODBC ne gèrent pas ce mode correctement. Dans ce cas, définissez le paramètre sur "String" (c'est la valeur par défaut). | String |
MetaDefCatalog | Spécifie le catalogue par défaut de l'application. En mode conception, le code omet le nom du catalogue dans les noms d'objet, s'il est égal à MetaDefCatalog. | Northwind |
MetaDefSchema | Spécifie le schéma par défaut de l'application. En mode conception, le code omet le nom du schéma dans les noms d'objet, s'il est égal à MetaDefSchema. | dbo |
Pour une base de données ODBC MSSQL, définissez la valeur du paramètre ODBCAdvanced FDConnection sur MARS_Connection=YES
. Sinon, lorsque vous appelez la méthode Open de FDTable, vous obtenez l'erreur suivante :
Exemples d'utilisation
- Connexion à PostgreSQL :
DriverID=ODBC User_Name=postgres Password=marlboro ODBCDriver=PostgreSQL ANSI ODBCAdvanced=SERVER=localhost;PORT=5432;DATABASE=addemo
- Connexion à Sybase Adaptive Server Enterprise :
DriverID=ODBC ODBCDriver=Adaptive Server Enterprise ODBCAdvanced=server=da;port=5000;quotedidentifier=1 Database=addemo User_Name=sa MetaDefCatalog=addemo MetaDefSchema=dbo
- Connexion à Informix Dynamic Server :
DriverID=ODBC ODBCDriver=IBM INFORMIX ODBC DRIVER User_Name=informix Password=informix2 Database=sysuser ODBCAdvanced=HOST=DA;SRVR=ol_svr_custom;SERV=svc_custom;PRO=olsoctcp;CLOC=en_US.CP1252;DLOC=en_US.819