Connexion à Advantage Database Server (FireDAC)
Remonter à Connectivité des bases de données (FireDAC)
Cette rubrique explique comment établir une connexion à Advantage Database Server.
Sommaire
Versions prises en charge
Le pilote natif FireDAC supporte Advantage Database Server v 8.0 ou ultérieure.
Logiciel client
Logiciel client Windows
FireDAC requiert la bibliothèque client ACE32.DLL x86 ou ACE64.DLL x64 (API de Advantage Client Engine) pour établir la connexion au serveur Advantage ou à un serveur local. Dans l'idéal, sa version doit être équivalente à celle du serveur. Ensemble complet des fichiers client de la version 10.0 :
- ace32.dll
- adsloc32.dll
- aicu32.dll
- axcws32.dll
- adscollate.adm
- adscollate.adt
- ansi.chr
- extend.chr
- icudt40l.dat
- adslocal.cfg
Vous pouvez télécharger l'API de Advantage Client Engine ici. Le dossier d'installation inclut le dossier "Redistribute", qui contient tous les fichiers transmissibles requis. Vous pouvez placer les fichiers dans :
- un dossier inclus dans votre variable d'environnement PATH.
- le dossier EXE de votre application.
- tout autre dossier, en spécifiant dans FDDrivers.ini :
[ADS]
VendorLib=<folder>\ace32.dll
Si la bibliothèque client ADS n'a pas été installée correctement, une exception est déclenchée lorsque vous tentez d'établir une connexion :
[FireDAC][Phys][ADS]-314. Cannot load vendor library [ACE32.dll]. The specified module could not be found. Make sure it is located in one of the PATH directories or in the application EXE directory
Logiciel client Linux
Téléchargez le moteur client Advantage pour Linux (EN) et exécutez les commandes suivantes dans le dossier de téléchargement :
tar -xavf aceapi-*.tar.*
cd aceapi-*
sudo ./setup.pl
Liaison du pilote
Pour lier le pilote Advantage :
- Déposez un composant TFDPhysADSDriverLink à partir de la page "Liens FireDAC" de la palette de composants.
- Ou incluez l'unité FireDAC.Phys.ADS dans une clause uses.
Paramètres de définition de la connexion
Conseil : Pour savoir comment accéder aux paramètres de définition de connexion, voir Définition d'une connexion (FireDAC).
DriverID=ADS
Paramètre | Description | Valeur exemple |
---|---|---|
ServerTypes |
Somme de valeurs indiquant les types de serveurs Advantage vers lesquels les tentatives de connexion seront effectuées. Les valeurs des serveurs sont :
A la place des numéros, vous pouvez utiliser les mots clés suivants :
Vous pouvez concaténer plusieurs types avec '|'. La valeur par défaut dépend des valeurs de Server et Database :
|
Par exemple, pour autoriser le pilote à utiliser le serveur distant ou local, mais pas le serveur Advantage Internet Server, utilisez : ServerTypes=3 (1+2). |
Protocol |
Spécifie le protocole de communication utilisé pour la connexion à Advantage Database Server :
|
TCPIP |
Server | Adresse du serveur. | \\ADS |
Port | Port du serveur. | 6262 |
Database | Chemin d'accès complet à l'ordinateur où résident les fichiers de données et emplacement par défaut des fichiers de données. Ce chemin d'accès complet doit contenir la lettre d'un lecteur ou utiliser la convention UNC. Database peut inclure les valeurs de Server et Port. Pour les types de serveurs distants, le chemin doit utiliser la convention UNC ou faire référence au partage réseau existant.
Pour les "connexions libres", le chemin doit être un nom de chemin valide vers l'emplacement des fichiers de données (par exemple, x:\data). Ce chemin est utilisé pour sélectionner automatiquement toutes les tables dans le répertoire spécifié. Pour les "connexions de bases de données", le chemin doit être un nom de chemin valide incluant le nom de fichier du dictionnaire de données Advantage (par exemple, x:\database\mydictionary.add). Un chemin d'accès peut inclure des variables relatives au chemin. |
c:\ads\data
\\ADS:6262\DB |
Alias | Spécifie l'alias à utiliser lors de la connexion au serveur de base de données. Le chemin d'accès au fichier associé à l'alias spécifié est utilisé comme répertoire de la base de données. Le type de table associé à l'alias est défini comme le type de table par défaut à utiliser avec cette connexion. Pour une description complète de Alias, voir Database Aliases and the ads.ini File (EN). | |
CharacterSet | Langage de classement facultatif utilisé lors de l'ouverture des tables. | ANSI |
Compress |
Spécifie l'option de compression des communications. Les valeurs valides sont :
|
Internet |
TableType |
Définit le type de fichiers de base de données à utiliser :
Ce paramètre est ignoré pour les connexions aux bases de données. |
ADT |
TablePassword | Spécifie le mot de passe de cryptage de toutes les tables dans la connexion. S'applique aux connexions libres uniquement.
Vous devez spécifier le mot de passe dans deux formats différents :
|
1) EMPLOYEES=pwd1;CUSTOMERS=pwd2
2) pwd |
Locking |
Spécifie le mode de verrouillage à utiliser lors de l'ouverture des tables DBF. Les valeurs valides sont :
|
Proprietary |
ADSAdvanced | Vous permet de spécifier toute autre valeur de paramètre de connexion AdsConnect101 (EN) de l'API de ACE. | EncryptDictionary=True;DDPassword=qwe |
Exemples d'utilisation
Ouvrir une base de données ADS locale en mode "connexion libre" :
DriverID=ADS Database=c:\ads\data
Ouvrir une base de données ADS locale en mode "connexion libre" avec des tables Visual FoxPro :
DriverID=ADS Database=c:\ads\data TableType=VFP
Ouvrir une connexion distante basée sur un dictionnaire de données :
DriverID=ADS ServerTypes=Remote Protocol=TCPIP Database=\\DA\ADS_DB\addemo.add User_Name=adssys Password=a
Ouvrir une base de données ADS locale en mode "connexion libre" en utilisant un alias :
DriverID=ADS Alias=MyConn
Et le contenu de ads.ini :
[Databases] MyConn=c:\data;N
Problèmes connus
- Le verrouillage pessimiste n'est plus pris en charge en raison de limitations Advantage. Concrètement, il y a un problème d'incompatibilité avec les verrous navigationnels et SQL.
Dépannage
Si vous obtenez l'erreur "Error 6060: Advantage Database Server not available on specified server", tentez d'ajouter le numéro de port (6262 par défaut) à la valeur de paramètre Server
. Par exemple : Server=example.com:6262
.