Configuration de TSQLConnection

De RAD Studio
Aller à : navigation, rechercher

Remonter à Connexion à un serveur de bases de données en utilisant dbExpress

Remonter à Comment exécuter les procédures de bases de données


Afin de décrire une connexion de base de données de façon suffisamment détaillée pour que TSQLConnection puisse l’ouvrir, vous devez identifier le pilote à utiliser et un ensemble de paramètres de connexion transmis au pilote.

Identification du pilote

Le pilote est identifié par la propriété DriverName, qui correspond au nom d'un pilote dbExpress installé, tel que ASA, ASE, Datasnap, Db2, Firebird, Informix, InterBase, MSSQL, MSSQL9, MySQL, Odbc et Oracle. Ces bases de données utilisent les pilotes Dynalink, partiellement écrits en Pascal Objet. Pour les pilotes Dynalink, le nom du pilote est associé à ces fichiers :

  • Le pilote dbExpress. C'est une bibliothèque de liaison dynamique avec un nom comme dbx*.dll. Par exemple, la DLL du pilote Interbase commence par "dbxint" et la DLL du pilote Oracle commence par "dbxora".
  • La bibliothèque de liaison dynamique fournie par l'éditeur de la base de données pour le support de la partie client.

La relation entre ces fichiers et le nom de la base de données est stockée dans un fichier appelé dbxdrivers.ini, qui est mis à jour lorsque vous installez un pilote dbExpress. Généralement, vous n'avez pas à vous soucier de ces fichiers car le composant connexion SQL les recherche dans dbxdrivers.ini lorsqu'il reçoit la valeur de DriverName. Quand vous définissez la propriété DriverName, TSQLConnection définit automatiquement les propriétés LibraryName et VendorLib sur les noms des dlls associées. Une fois LibraryName et VendorLib définies, votre application n'est plus dépendante de dbxdrivers.ini. En d'autres termes, vous n'avez pas besoin de déployer dbxdrivers.ini avec votre application, sauf si vous définissez la propriété DriverName à l'exécution).

Spécification des paramètres de connexion

La propriété Params est une liste de chaînes qui présente les paires nom-valeur. Chaque paire a la forme Nom=Valeur, où Nom est le nom du paramètre et Valeur la valeur que vous voulez assigner.

Les paramètres particuliers requis dépendent du serveur de base de données utilisé. Toutefois, un paramètre particulier, Database, est requis pour tous les serveurs. Sa valeur dépend du serveur que vous utilisez. Par exemple, Database est le nom du fichier .gdb (InterBase), l'entrée dans TNSNames.ora (ORACLE) ou le nom du noeud côté client (DB2).

Les autres paramètres typiques sont User_Name (le nom à utiliser lors de l'ouverture d'une session), Password (le mot de passe pour User_Name), HostName (le nom de la machine ou l'adresse IP du serveur) et TransIsolation ((le degré de reconnaissance par vos transactions des changements apportés par les autres transactions). Quand vous spécifiez un nom de pilote, la propriété Params est préchargée avec tous les paramètres requis pour ce type de pilote, initialisés à leurs valeurs par défaut. Vous pouvez aussi ajouter d'autres paramètres de connexion à la liste de chaînes Params selon les besoins de votre application. Par exemple, pour fournir le support MARS (Multiple Active Result Set) à une connexion SQL en utilisant le pilote MSSQL, vous devez ajouter une clé appelée Mars_Connection et définir sa valeur sur True.

Un autre paramètre utile pour la connexion à une base de données FailIfMissing. Si FailIfMissing est défini sur True, la connexion à la base de données échouera si la base de données n'existe pas. Sinon, si FailIfMissing est défini sur False, la base de données est créée si elle n'existe pas

La propriété de connexion ColumnMetaDataSupported pour une base de données SQLite indique si la bibliothèque sqlite3 a été compilée avec le symbole de préprocesseur C SQLITE_ENABLE_COLUMN_METADATA défini. Par défaut, cette propriété est définie sur True pour Windows, et sur False pour MacOS.

Puisque Params est une liste de chaînes, vous pouvez double-cliquer à la conception sur la propriété Params dans l'inspecteur d'objets pour éditer les paramètres à l'aide de l'éditeur de listes de chaînes. A l'exécution, utilisez la propriété Params.Values pour assigner des valeurs aux paramètres individuels.

Dénomination d'une description de connexion

Bien que vous puissiez toujours spécifier une connexion avec seulement les propriétés DatabaseName et Params, il peut s'avérer plus pratique de nommer une combinaison spécifique puis simplement d’identifier la connexion par son nom. Vous pouvez nommer les combinaisons de paramètres et de bases de données dbExpress, qui sont ensuite enregistrées dans un fichier appelé dbxconnections.ini. Le nom de chaque combinaison est un nom de connexion.

Une fois que vous avez défini le nom de la connexion, vous pouvez identifier une connexion de base de données en définissant simplement la propriété ConnectionName sur un nom de connexion valide. La définition de ConnectionName définit automatiquement les propriétés DriverName et Params. Une fois ConnectionName, définie, vous pouvez éditer la propriété Params afin de créer des différences temporaires à partir de l'ensemble de valeurs de paramètres enregistré, mais changer la propriété DriverName efface à la fois Params et ConnectionName.

L'un des avantages de l'utilisation de noms de connexion apparaît quand vous développez votre application en utilisant une base de données (par exemple, Local InterBase), mais que vous la déployez en vue d'une utilisation par une autre base de données (telle que ORACLE). Dans ce cas, DriverName et Params diffèreront probablement sur le système où vous déployez votre application des valeurs utilisées pendant le développement. Vous pouvez facilement basculer entre les deux descriptions de connexion en utilisant deux versions du fichier dbxconnections.ini. A la conception, votre application charge DriverName et Params à partir de la version de conception de dbxconnections.ini. Quand vous déployez ensuite votre application, elle charge ces valeurs à partir d'une version distincte de dbxconnections.ini qui utilise la base de données "réelle". Toutefois, pour que cela fonctionne, vous devez indiquer à votre composant de connexion de recharger les propriétés DriverName et Params à l'exécution. Il existe deux façons de procéder :

  • Définir la propriété LoadParamsOnConnect sur True. Ainsi, TSQLConnection définit automatiquement DriverName et Params sur les valeurs associées à ConnectionName dans dbxconnections.ini quand la connexion est ouverte.
  • Appeler la méthode LoadParamsFromIniFile method. Cette méthode définit DriverName et Params sur les valeurs associées à ConnectionName dans dbxconnections.ini (ou dans un autre fichier que vous spécifiez). Vous pouvez opter pour cette méthode si vous voulez redéfinir certaines valeurs de paramètres avant d'ouvrir la connexion.

Utilisation de l'éditeur de connexion

La relation entre les noms de connexion et leurs paramètres de pilote et de connexion associés est stockée dans le fichier dbxconnections.ini. Vous pouvez créer ou modifier ces associations à l'aide de l'éditeur de connexion.

Pour afficher l'éditeur de connexion, double-cliquez sur le composant TSQLConnection. L'éditeur de connexion apparaît, avec une liste déroulante contenant tous les pilotes disponibles, une liste de noms de connexion pour le pilote actuellement sélectionné, et un tableau listant les paramètres de connexion pour le nom de connexion actuellement sélectionné.

Vous pouvez utiliser ce dialogue pour indiquer la connexion à utiliser en sélectionnant un pilote et un nom de connexion. Après le choix de la configuration souhaitée, cliquez sur le bouton Tester la connexion afin de vérifier que vous avez bien choisi une configuration valide.

En outre, vous pouvez utiliser ce dialogue pour éditer les connexions nommées de dbxconnections.ini :

  • Editez les valeurs de paramètres dans le tableau des paramètres afin de changer la connexion nommée actuellement sélectionnée. Quand vous quittez le dialogue en cliquant sur OK, les nouvelles valeurs de paramètres sont enregistrées dans dbxconnections.ini.
  • Cliquez sur le bouton Ajouter une connexion afin de définir une nouvelle connexion nommée. Un dialogue apparaît dans lequel vous spécifiez le pilote à utiliser et le nom de la nouvelle connexion. Une fois la connexion nommée, éditez les paramètres afin de spécifier la connexion souhaitée et cliquez sur OK pour enregistrer la nouvelle connexion dans dbxconnections.ini.
  • Cliquez sur le bouton Supprimer la connexion pour supprimer la connexion nommée actuellement sélectionnée de dbxconnections.ini.
  • Cliquez sur le bouton Renommer la connexion pour changer le nom de la connexion nommée actuellement sélectionnée. Notez que toutes les éditions apportées aux paramètres sont enregistrées sous le nouveau nom quand vous cliquez sur le bouton OK.

Voir aussi