Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)
Nach oben zu Datenbankkonnektivität (FireDAC)
In diesem Thema wird beschrieben, wie eine Verbindung zu Sybase SQL Anywhere hergestellt wird.
Inhaltsverzeichnis
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:
|
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 |
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 ) } |
|
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