TSQLConnection einrichten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Herstellen einer Verbindung zum Datenbankserver mit dbExpress

Nach oben zu So arbeiten Sie mit Datenbanken


Um eine Datenbankverbindung ausreichend genau für TSQLConnection zu beschreiben, damit eine Verbindung eingerichtet werden kann, müssen Sie sowohl den zu verwendenden Treiber angeben als auch alle Verbindungsparameter, die diesem Treiber übergeben werden sollen.

Festlegen des Treibers

Der Treiber wird durch die Eigenschaft DriverName festgelegt. Dabei handelt es sich um den Namen eines installierten dbExpress-Treibers, beispielsweise ASA, ASE, DataSnap, Db2, Firebird, Informix, InterBase, MSSQL, MSSQL9, MySQL, ODBC und Oracle. Diese Datenbanken verwenden Dynalink-Treiber, die teilweise in Object Pascal geschrieben sind. Bei Dynalink-Treibern ist der Treibername diesen Dateien zugeordnet:

  • Der dbExpress-Treiber. Hierbei handelt es sich um eine dynamische Link-Bibliothek mit einem Namen wie dbx*.dll. Die InterBase-Treiber-DLL beginnt beispielsweise mit "dbxint" und die Oracle-Treiber-DLL mit "dbxora".
  • Die von dem Datenbankhersteller zum clientseitigen Support bereitgestellte DLL.

Die Beziehung zwischen diesen Dateien und dem Datenbanknamen wird in der Datei dbxdrivers.ini gespeichert, die bei der Installation eines dbExpress-Treibers aktualisiert wird. In der Regel brauchen Sie sich nicht um diese beiden Dateien zu kümmern, weil die SQL-Verbindungskomponente sie in dbxdrivers.ini nachschlägt, wenn ihr der Wert von DriverName übergeben wird. Wenn Sie die Eigenschaft Driver festlegen, weist TSQLConnection den Eigenschaften LibraryName und VendorLib automatisch die Namen der verknüpften DLLs zu. Nachdem LibraryName und VendorLib gesetzt wurden, braucht Ihre Anwendung nicht mehr auf dbxdrivers.ini zurückzugreifen. (Das bedeutet, Sie brauchen dbxdrivers.ini nicht mit Ihrer Anwendung weiterzugeben, es sei denn, Sie setzen die Eigenschaft DriverName zur Laufzeit.)

Angeben von Verbindungsparametern

Die Eigenschaft Params ist eine Stringliste, die Name/Wert-Paare enthält. Jedes Paar hat die Form Name=Wert, wobei Name der Name des Parameters und Wert der Wert ist, den Sie zuweisen möchten.

Die erforderlichen Parameter sind von dem verwendeten Datenbankserver abhängig. Der Parameter Database muss jedoch für alle Server bereitgestellt werden. Sein Wert hängt vom verwendeten Server ab. Für InterBase beispielsweise ist Database der Name der GDB-Datei, für ORACLE ist es der Eintrag in TNSNames.ora, für DB2 wiederum der clientseitige Knotenname.

Weitere typische Parameter sind User_Name (der für die Anmeldung verwendete Name), Password (das Passwort für User_Name), HostName (der Maschinenname oder die IP-Adresse, unter dem bzw. der der Server zu finden ist) sowie TransIsolation (die Stufe, zu der die von Ihnen eingeführten Transaktionen Änderungen durch andere Transaktionen berücksichtigen). Wenn Sie einen Treibernamen angeben, wird die Eigenschaft Params mit allen Parametern ausgestattet, die Sie für diesen Treibertyp benötigen, wobei die Standardwerte voreingestellt werden. Sie können zur Params-Stringliste auch andere Verbindungsparameter, je nach den Erfordernissen Ihrer Anwendung, hinzufügen. Um beispielsweise für eine SQL-Verbindung, die den MSSQL-Treiber verwendet, MARS-Unterstützung (Multiple Active Result Set) bereitzustellen, müssen Sie den Schlüssel Mars_Connection hinzufügen und dessen Wert auf True setzen.

Ein weiterer nützlicher Parameter für eine SQLite-Datenbankverbindung ist FailIfMissing. Wenn FailIfMissing auf True gesetzt ist, schlägt die Datenbankverbindung fehl, wenn die Datenbank nicht vorhanden ist. Andernfalls, wenn FailIfMissing auf False gesetzt ist, wird die Datenbank erstellt, sofern sie nicht vorhanden ist.

Die ColumnMetaDataSupported-Verbindungseigenschaft für eine SQLite-Datenbank gibt an, ob die SQLite3-Bibliothek mit dem definierten C-Präprozessorsymbol SQLITE_ENABLE_COLUMN_METADATA compiliert wurde. Standardmäßig ist diese Eigenschaft für Windows True und für MacOS False.

Weil Params eine Stringliste ist, können Sie zur Entwurfszeit im Objektinspektor auf die Eigenschaft Params doppelklicken, um die Parameter mithilfe des Stringlisten-Editors zu bearbeiten. Zur Laufzeit verwenden Sie die Eigenschaft Params.Values, um einzelnen Parametern Werte zuzuweisen.

Benennen von Verbindungsbeschreibungen

Eine Verbindung kann zwar immer mithilfe der Eigenschaften DatabaseName und Params spezifiziert werden, manchmal ist es jedoch praktischer, einer bestimmten Kombination einen Namen zuzuweisen und die Verbindung dann unter diesem Namen anzusprechen. Sie können Namen für Kombinationen aus dbExpress-Datenbanken und -Parametern einführen, die dann in der Datei dbxconnections.ini gespeichert werden. Der Name einer solchen Kombination wird Verbindungsname genannt.

Nachdem Sie den Verbindungsnamen definiert haben, sprechen Sie Ihre Datenbankverbindung an, indem Sie einfach die Eigenschaft ConnectionName auf einen gültigen Verbindungsnamen setzen. Beim Setzen von ConnectionName werden automatisch auch die Eigenschaften DriverName und Params gesetzt. Nachdem ConnectionName angegeben wurde, können Sie die Eigenschaft Params bearbeiten, um die gespeicherten Parameterwerte vorübergehend zu ändern. Wenn Sie die Eigenschaft DriverName ändern, werden jedoch sowohl Params als auch ConnectionName gelöscht.

Ein Vorteil von Verbindungsnamen wird deutlich, wenn Sie Ihre Anwendung unter Verwendung einer bestimmten Datenbank entwickeln (beispielsweise Local InterBase), sie aber an Benutzer weitergeben, die sie für eine andere Datenbank einsetzen wollen (wie beispielsweise ORACLE). In diesem Fall unterscheiden sich DriverName und Params auf dem System, auf dem Sie Ihre Anwendung einsetzen, von den Werten, die Sie bei der Entwicklung verwendet haben. Mithilfe von zwei Versionen der Datei dbxconnections.ini können Sie ganz einfach zwischen den beiden Verbindungsbeschreibungen wechseln. Zur Entwurfszeit lädt Ihre Anwendung DriverName und Params aus der Entwurfzeitversion von dbxconnections.ini. Wenn Sie Ihre Anwendung später bereitstellen, lädt sie diese Werte aus einer separaten Version von dbxconnections.ini, die die "tatsächliche" Datenbank verwendet. Dazu müssen Sie die Verbindungskomponente aber anweisen, die Eigenschaften DriverName und Params zur Laufzeit neu zu laden. Hierfür gibt es zwei Möglichkeiten:

  • Setzen Sie die Eigenschaft LoadParamsOnConnect auf True. Dadurch wird TSQLConnection veranlasst, die Eigenschaften Driver und Params beim Öffnen der Verbindung automatisch auf die Werte zu setzen, die der Eigenschaft ConnectionName in der Datei dbxconnections.ini zugeordnet wurden.
  • Rufen Sie die Methode LoadParamsFromIniFile auf. Diese Methode setzt DriverName und Params auf die Werte, die ConnectionName in dbxconnections.ini (oder in einer anderen von Ihnen angegebenen Datei) zugewiesen wurden. Verwenden Sie diese Methode beispielsweise, wenn Sie bestimmte Parameterwerte überschreiben wollen, bevor Sie die Verbindung öffnen.

Verwenden des Verbindungseditors

Die Beziehungen zwischen Verbindungsnamen und ihren zugeordneten Treiber- und Verbindungsparametern sind in der Datei dbxconnections.ini gespeichert. Mithilfe des Verbindungseditors legen Sie diese Zuordnungen an und bearbeiten sie.

Um den Verbindungseditor anzuzeigen, doppelklicken Sie auf die Komponente TSQLConnection. Der Verbindungseditor wird angezeigt und stellt eine Dropdown-Liste mit allen verfügbaren Treibern, eine Liste der Verbindungsnamen für den aktuell ausgewählten Treiber sowie eine Tabelle mit den Verbindungsparametern für den aktuell ausgewählten Verbindungsnamen bereit.

In diesem Dialogfeld legen Sie fest, welche Verbindung verwendet werden soll, indem Sie einen Treiber und einen Verbindungsnamen auswählen. Nachdem Sie die gewünschte Konfiguration festgelegt haben, klicken Sie auf die Schaltfläche Verbindung testen, um sicherzustellen, dass Sie eine gültige Konfiguration ausgewählt haben.

Darüber hinaus können Sie in diesem Dialogfeld die in dbxconnections.ini gespeicherten benannten Verbindungen bearbeiten:

  • Bearbeiten Sie die Parameterwerte in der Parametertabelle, um die aktuell ausgewählte benannte Verbindung zu ändern. Nachdem Sie das Dialogfeld mit OK geschlossen haben, werden die neuen Parameterwerte in dbxconnections.ini gespeichert.
  • Klicken Sie auf die Schaltfläche Verbindung hinzufügen, um eine neue benannte Verbindung zu definieren. In dem angezeigten Dialogfeld geben Sie den benötigten Treiber sowie den Namen der neuen Verbindung ein. Nachdem Sie der Verbindung einen Namen zugeordnet haben, bearbeiten Sie die Parameter, um die gewünschte Verbindung zu beschreiben, und klicken auf die Schaltfläche OK, um die neue Verbindung in dbxconnections.ini zu speichern.
  • Klicken Sie auf die Schaltfläche Verbindung löschen, um die aktuell ausgewählte benannte Verbindung aus dbxconnections.ini zu entfernen.
  • Klicken Sie auf die Schaltfläche Verbindung umbenennen, um den Namen der aktuell ausgewählten benannten Verbindung zu ändern. Beachten Sie, dass alle Änderungen der Parameter unter dem neuen Namen gespeichert werden, wenn Sie auf die Schaltfläche OK klicken.

Siehe auch