Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankkonnektivität (FireDAC)

In diesem Thema wird beschrieben, wie eine Verbindung zu Sybase SQL Anywhere hergestellt wird.

Unterstützte Versionen

Der native FireDAC-Treiber unterstützt Sybase SQL Anywhere 5 und höher.

Client-Software

Windows-Client-Software

Für FireDAC muss einer der x86- oder x64-ODBC-Treiber von Sybase SQL Anywhere auf dem Arbeitsplatz-Computer installiert sein:

  • "Adaptive Server Anywhere": ODBC-Treiber zum Verbinden mit Version 5 - 7.
  • "SQL Anywhere N": ODBC-Treiber; N steht für die DBMS-Hauptversionsnummer (z. B. 8, 9, 10).

Der bevorzugte Treiber ist "SQL Anywhere N". Der ODBC-Treiber ist Bestandteil von Sybase SQL Anywhere SDK. Sie können Sybase SQL Anywhere SDK von hier (EN) herunterladen.

Wenn der SQL Anywhere-ODBC-Treiber nicht ordnungsgemäß installiert wurde, wird beim Verbindungsversuch eine Exception ausgelöst:


[FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

Wenn in Ihrer Anwendung SQL Anywhere-Dienstkomponenten, wie TFDASABackup, verwendet werden, dann müssen Sie die folgenden DLLs auf den Arbeitsplatz-Computern installieren:

  • DBTOOL<N>.DLL
  • DBLIB<N>.DLL

N ist die Version Ihres SQL Anywhere.

macOS-Client-Software

FireDAC benötigt:

  • die x86-ODBC-Treiberverwaltungsbibliothek UnixODBC (libodbc.dylib).
  • den x86-ODBC-Treiber SQL Anywhere (libdbodbcNN.dylib).

Die SQL Anywhere-Client-Software für macOS kann von hier (EN) heruntergeladen werden. Nach der Installation:

  • Fügen Sie Folgendes in die /usr/local/etc/odbcinst.ini ein:
[SQL Anywhere 16]
Description=SQL Anywhere v 16
Driver=/Applications/SQLAnywhere12/System/lib32/libdbodbc16_r.dylib
Setup=/Applications/SQLAnywhere12/System/lib32/libdbodbc16_r.dylib
UsageCount=1
  • Entfernen Sie die Verknüpfungen libodbcinst.dylib und libodbcinst.dylib.1 aus dem Ordner /Applications/SQLAnywhere12/System/lib32, da sie Konflikte mit UnixODBC libodbcinst.dylib verursacht. Diese Aktion wird vom Sybase-Entwicklungsteam empfohlen.
  • Führen Sie /Applications/SQLAnywhere12/System/bin32/sa_config.sh aus.

Linux-Client-Software

FireDAC benötigt die unixODBC 64-Bit ODBC-Treiberverwaltungsbibliothek und den SQL Anywhere 64-Bit ODBC-Treiber. Um SQL Anywhere ODBC-Treiber unter Linux zu installieren, führen Sie die folgenden Befehle aus:

wget http://d5d4ifzqzkhwt.cloudfront.net/sqla16client/sqla16_client_linux_x86x64.tar.gz
tar -xavf sqla16_client_linux_x86x64.tar.gz
cd client1600
sudo ./setup -nogui -I_accept_the_license_agreement -silent
sudo rm /opt/sqlanywhere16/lib64/libodbcinst.so
sudo rm /opt/sqlanywhere16/lib64/libodbcinst.so.1
/opt/sqlanywhere16/bin64/sa_config.sh
echo [SQL Anywhere 16] > asa.driver.template
echo Description=SQL Anywhere ODBC Driver v 16 >> asa.driver.template
echo Driver=/opt/sqlanywhere16/lib64/libdbodbc16_r.so >> asa.driver.template
echo Setup=/opt/sqlanywhere16/lib64/libdbodbc16_r.so >> asa.driver.template
sudo odbcinst -i -d -f asa.driver.template

Treibereinbindung

So binden Sie den Treiber ein:

  • Ziehen Sie aus der Seite "FireDAC Links" der Komponentenpalette eine TFDPhysASADriverLink-Komponente auf das Formular.
  • Fügen Sie die Unit FireDAC.Phys.ASA in die uses-Klausel ein.

Verbindungsdefinitionsparameter

Für eine Verbindung mit einem SQL Anywhere-DBMS ist für die meisten Anwendungen die Angabe von DriverID, Server, Database, OSAuthent, User_Name und Password erforderlich (Einzelheiten finden Sie unter Definieren von Verbindungen (FireDAC)).

DriverID=ASA

Parameter Beschreibung Beispielwert
Server Gibt den Namen eines ausgeführten Datenbankservers an, zu dem Sie eine Verbindung herstellen möchten. ASASrv
Database Gibt eine geladene Datenbank an, zu der eine Verbindung hergestellt werden muss, wenn eine Verbindung zu einer bereits ausgeführten Datenbank hergestellt wird.
OSAuthent

Steuert den Authentifizierungsmodus:

  • Yes – es wird eine integrierte Anmeldung versucht.
  • No – die DBMS-Anmeldung wird verwendet. Das ist der Vorgabewert.
No
User_Name Gibt die zur Anmeldung bei der Datenbank verwendete Benutzer-ID an, wenn "OSAuthent=No". dba
Password Gibt das zur Anmeldung bei der Datenbank verwendete Benutzerpasswort an, wenn "OSAuthent=No".

Passwörter, die "{" oder "}" enthalten, werden nicht unterstützt.

sql
DatabaseFile Gibt die Datenbankdatei an, die geladen und zu der eine Verbindung hergestellt werden soll, wenn eine Datenbank gestartet wird, die noch nicht ausgeführt wird. Verwenden Sie den Parameter "Database", um eine Verbindung zu einer bereits ausgeführten Datenbank herzustellen.
Compress

Steuert die Komprimierung des Netzwerkverkehrs:

  • Yes – die Komprimierung für eine Verbindung aktivieren.
  • No – die Komprimierung für eine Verbindung deaktivieren. Das ist der Vorgabewert.
Yes
Encrypt Verschlüsselt Pakete, die zwischen der Client-Anwendung und dem Server unter Verwendung der Transportschichtsicherheit oder einer einfachen Verschlüsselung übertragen werden. Die Syntax lautet: { NONE | SIMPLE | TLS( TLS_TYPE=Verschlüsselung; [ FIPS={ Y | N }; ] TRUSTED_CERTIFICATES=öffentliches Zertifikat ) }
  • tls(tls_type=rsa;fips=n;trusted_certificates=rsaserver.crt)
  • simple
LoginTimeout Steuert die Dauer in Sekunden bis zur Zeitüberschreitung einer Anwendung beim Versuch, eine Verbindung herzustellen (0 gibt eine unendliche Wartezeit an). 30
ApplicationName Unterstützt Administratoren bei der Identifizierung der Herkunft von bestimmten Client-Verbindungen auf einem Datenbankserver. Der String kann mit der folgenden Anweisung abgerufen werden: SELECT CONNECTION_PROPERTY('AppInfo') AllBooks
ODBCAdvanced Ermöglicht die Angabe eines beliebigen weiteren ODBC-Verbindungsparameterwertes. Der Vorgabewert ist "CommLinks=ShMem,TCP". Beachten Sie, dass der Server nicht automatisch startet, wenn "CommLinks" angegeben ist. AutoStart=Yes;CharSet=Windows-1251
MetaDefCatalog Standarddatenbankname. Im Entwurfszeitcode wird der Katalogname im Objektnamen weggelassen, wenn er MetaDefCatalog entspricht. addemo
MetaDefSchema Standardschemaname. Im Entwurfszeitcode wird der Schemaname im Objektnamen weggelassen, wenn er MetaDefSchema entspricht. dba

Anwendungsfälle

Automatisches Starten des lokalen Servers und Öffnen der Datenbankdatei "C:\sybase\addemo_asa10.db":


DriverID=ASA
ODBCAdvanced=AutoStart=Yes
DatabaseFile=C:\sybase\addemo_asa10.db
User_Name=dba
Password=sql
MetaDefSchema=dba
  • Herstellen einer Verbindung zu einem lokalen Standardserver


DriverID=ASA
User_Name=dba
Password=sql
MetaDefSchema=dba
  • Herstellen einer Verbindung zur Datenbank ADDemo, die auf der Serverinstanz ASASrv ausgeführt wird:


DriverID=ASA
Server=ASASrv
Database=ADDemo
User_Name=dba
Password=sql
MetaDefSchema=dba
  • Herstellen einer Verbindung zur Datenbank ADDemo, die auf der Serverinstanz ASASrv in einem anderen Netzwerk ausgeführt wird:


DriverID=ASA
ODBCAdvanced=CommLinks=tcpip(host=227.12.66.1)
Server=ASASrv
Database=ADDemo
User_Name=dba
Password=sql
MetaDefSchema=dba

Siehe auch