Herstellen einer Verbindung zu Microsoft SQL Server (FireDAC)
Nach oben zu Datenbankkonnektivität (FireDAC)
In diesem Thema wird beschrieben, wie eine Verbindung zu Microsoft SQL Server hergestellt wird.
Inhaltsverzeichnis
Unterstützte Versionen
Der native FireDAC-Treiber unterstützt die Editionen Microsoft SQL Server Standard und Express Version 2000 und höher sowie Microsoft SQL Azure. Eine Beschreibung über das Herstellen einer Verbindung zu Microsoft SQL Server Compact Edition finden Sie unter Herstellen einer Verbindung zu Microsoft SQL Server Compact Edition.
Client-Software
Windows-Client-Software
Für FireDAC muss einer der x86- oder x64-ODBC-Treiber von Microsoft SQL Server auf dem Arbeitsplatz-Computer installiert sein:
- SQL Server-ODBC-Treiber als Verbindung für SQL Server 2000. Höchstwahrscheinlich ist der ODBC-Treiber bereits auf Ihrem Arbeitsplatz-Computer installiert. Falls nicht finden Sie hier Details.
- SQL Native Client als Verbindung für SQL Server 2000 und 2005. Es wird dringend empfohlen, den SQL Native Client zu installieren, wenn Ihre Anwendung mit SQL Server 2005 arbeiten muss. Siehe Microsoft SQL Server Native Client.
- SQL Server Native Client NN.N als Verbindung für SQL Server 2000, 2005, 2008, 2012 und SQL Azure. Es wird dringend empfohlen, den SQL Server Native Client NN.N zu installieren, wenn Ihre Anwendung mit SQL Server 2008, 2012 oder SQL Azure arbeiten muss. Siehe Microsoft SQL Server 2008 Native Client.
- SQL Server Native Client 11.0 als Verbindung für LocalDB.
- ODBC Driver 13-18 als Verbindung für SQL Server 2008, 2008 R2, 2012, 2014, 2016, 2017 und 2019 sowie SQL Azure. Wir empfehlen die Verwendung von ODBC Driver 18.
Wenn der SQL Server-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
macOS-Client-Software
FireDAC benötigt:
- Die x86-ODBC-Treiberverwaltungsbibliothek UnixODBC (libodbc.dylib).
- Den FreeTDS-x86-ODBC-Treiber (libtdsodbc.dylib).
FreeTDS kann aus CVS in einen Ordner Ihres Stammverzeichnisses übertragen werden (siehe 1) (siehe 2). Verwenden Sie die folgenden Befehle, um FreeTDS auf macOS zu installieren:
cvs -z3 -d:pserver:[email protected]:/cvsroot/freetds checkout -P freetdsc cd freetds ./autogen.sh ./configure --with-tdsver=8.0 --with-unixodbc=/usr/local make sudo make install echo [FreeTDS] > tds.driver.template echo Description=v0.82 with protocol v8.0 >> tds.driver.template echo Driver=/usr/local/lib/libtdsodbc.so >> tds.driver.template odbcinst -i -d -f tds.driver.template cd ..
Sie müssen eventuell auch das Hilfsprogramm gawk installieren. Nun können Sie einen ODBC-DSN konfigurieren oder die FireDAC-Verbindung testen.
Der FreeTDS-ODBC-Treiber ist nicht so effizient und stabil wie der originale Microsoft ODBC-Treiber.
Linux-Client-Software
FireDAC benötigt die unixODBC 64-Bit ODBC-Treiberverwaltungsbibliothek und den Microsoft ODBC-Treiber 11 für SQL-Server unter Linux.
Um den Microsoft ODBC-Treiber 11 für SQL-Server unter Linux zu installieren:
-
Auf Ubuntu Server 16.04 LTS, führen Sie die folgenden Befehle aus:
sudo apt-get install openssl libkrb5-3 libc6 e2fsprogs sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.10 sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so.10 wget http://download.microsoft.com/download/B/C/D/BCDD264C-7517-4B7D-8159-C99FC5535680/RedHat6/msodbcsql-11.0.2270.0.tar.gz tar -xavf msodbcsql-11.0.2270.0.tar.gz sudo bash msodbcsql-11.0.2270.0/install.sh install --accept-license --force
- Auf Red Hat Enterprise Linux 7, laden Sie das entsprechende Installationsprogramm herunter (EN) und befolgen Sie die offizielle Installationsanweisungen.
Treibereinbindung
So binden Sie den Treiber ein:
- Ziehen Sie aus der Paletten-Seite "FireDAC Links" eine TFDPhysMSSQLDriverLink-Komponente auf das Formular.
- Oder nehmen Sie die Unit FireDAC.Phys.MSSQL in die uses-Klausel auf.
Verbindungsdefinitionsparameter
Für eine Verbindung mit dem Microsoft SQL Server-DBMS ist für die meisten Anwendungen die Angabe der Parameter "DriverID", "Server", "Database", "OSAuthent", "User_Name" und "Password" erforderlich (Einzelheiten finden Sie unter Definieren von Verbindungen (FireDAC)).
DriverID=MSSQL
Parameter | Beschreibung | Beispielwert |
---|---|---|
Server | Name eines Servers im Netzwerk, auf dem SQL Server ausgeführt wird. Der Wert muss entweder der Name eines Servers im Netzwerk oder der Name eines erweiterten Servereintrags für die SQL Server-Clientkonfiguration sein.
Wenn Sie eine Verbindung zu SQL Azure herstellen, müssen Sie dem Servernamen das Präfix "tcp:" voranstellen. Hinweis: Der alternative TPC/IP-Port kann nach einem Servernamen, getrennt durch Komma, angegeben werden.
Hinweis: Um eine Verbindung zu einer benannten Instanz unter Linux herzustellen, muss der TPC/IP-Port nach dem Servernamen durch Komma getrennt angegeben werden. Geben Sie nicht den Instanznamen an.
|
|
Port | Nur für macOS. Legt den Port fest, über den SQL Server empfängt.
Für die Windows-Plattform kann der Port nach einem Komma im "Server"-Parameterwert angegeben werden. Zum Beispiel: Server=host, port. Der Standard-Port ist 1433. |
|
Database | Name der Standarddatenbank für die Verbindung. Wenn "Database" nicht angegeben ist, wird die bei der Anmeldung angegebene Standarddatenbank verwendet. | Northwind |
OSAuthent |
Steuert den Authentifizierungsmodus:
|
No |
User_Name | Der Anmeldename für SQL Server, wenn "OSAuthent=No" ist.
Bei einer Verbindung zu SQL Azure müssen Sie das Suffix "@<Server>" an Ihren Benutzernamen anhängen. |
|
Password | Das Anmeldepasswort für SQL Server, wenn "OSAuthent=No" ist.
Passwörter, die "{" oder "}" enthalten, werden nicht unterstützt. |
|
Network | Name einer Netzwerk-DLL. Der Name muss den Pfad und die Dateinamenserweiterung .dll nicht enthalten. | dbnmpntw |
Address | Netzwerkadresse des Servers, auf dem eine Instanz von SQL Server ausgeführt wird. Address ist normalerweise der Netzwerkname des Servers, kann aber auch ein anderer Name, wie eine Pipe, oder ein TCP/IP-Port und eine Socket-Adresse, sein. | |
MARS |
Steuert die MARS-Unterstützung (Multiple Active Result Sets) in einer Verbindung:
MARS ist ein von SQL 2005 und höheren Versionen oder von SQL Azure unterstütztes Feature. Die Aktivierung von MARS kann zu Leistungseinbußen führen. Weitere Informationen über MARS finden Sie unter: Verwenden von Multiple Active Result Sets (MARS) |
No |
Workstation | ID des Arbeitsplatz-Computers. In der Regel ist das der Netzwerkname des Computers, auf dem sich die Anwendung befindet (optional). Wenn angegeben, wird dieser Wert in der Spalte "hostname" von master.dbo.sysprocesses gespeichert und wird von sp_who und der Transact-SQL-Funktion HOST_NAME zurückgegeben. | Bookkeeper1 |
Language | Name der SQL Server-Sprache (optional). Bei der Verbindung zu einem SQL-Server mit mehreren Sprachen gibt Language an, welcher Meldungssatz für die Verbindung verwendet wird. | |
Encrypt |
Steuert die Verschlüsselung des Netzwerkverkehrs:
|
Yes |
LoginTimeout | Steuert die Dauer in Sekunden bis zur Zeitüberschreitung einer Anwendung beim Versuch, eine Verbindung herzustellen. 0 gibt eine unendliche Wartezeit an (Vorgabewert). | 30 |
VariantFormat |
Steuert die Darstellung des Datentyps SQL_VARIANT:
|
Binary |
StringFormat |
|
Choose |
ExtendedMetadata |
Steuert die erweiterte Beschreibung von Abfrage-Ergebnismengen:
|
True |
ApplicationName | Name der Anwendung. Wenn angegeben, wird dieser Wert in der Spalte "program_name" von master.dbo.sysprocesses gespeichert und wird von sp_who und der Transact-SQL-Funktion APP_NAME zurückgegeben. | AllBooks |
ODBCAdvanced | Ermöglicht die Angabe eines beliebigen weiteren ODBC-Verbindungsparameterwertes. | MARS_Connection=no;Regional=yes |
MetaDefCatalog | Standarddatenbankname. Im Entwurfszeitcode wird der Katalogname im Objektnamen weggelassen, wenn er MetaDefCatalog entspricht. | Northwind |
MetaDefSchema | Standardschemaname. Im Entwurfszeitcode wird der Schemaname im Objektnamen weggelassen, wenn er MetaDefSchema entspricht. | dbo |
MetaCaseIns |
Steuert die Groß-/Kleinschreibung von Metadaten:
|
True |
MetaCaseInsCat |
Steuert die Groß-/Kleinschreibung von SQL Server-Katalognamen. Folgende Werte sind möglich:
|
True |
Anwendungsfälle
Verwenden einer sicheren Verbindung
Übergeben Sie für die Verwendung der TLS/SSL-Verschlüsselung das Schlüssel/Wertepaar TrustServerCertificate=yes
für den Wert des Parameters ODBCAdvanced:
ODBCAdvanced=TrustServerCertificate=yes
Weitere Anwendungsfälle
- Herstellen einer Verbindung zur lokalen SQL Server-Instanz mittels SQL Server-Authentifizierung:
DriverID=MSSQL Server=127.0.0.1 Database=Northwind User_Name=sa MetaDefSchema=dbo MetaDefCatalog=Northwind
- Herstellen einer Verbindung zu SQL Express 2005 mittels Windows-Authentifizierung:
DriverID=MSSQL Server=DA\SQLEXPRESS Database=Northwind OSAuthent=Yes MARS=no
- Herstellen einer Verbindung zu SQL Azure. Beachten Sie das Suffix "@<Server>" im Parameter "User_Name" und das Präfix "tcp:" im Parameter "Server":
DriverID=MSSQL Server=tcp:nasdfert6.database.windows.net Database=Northwind User_Name=addemo@nasdfert6 Password=asd123zxc Encrypt=Yes MetaDefSchema=dbo MetaDefCatalog=Northwind
- Herstellen einer Verbindung zu LocalDB:
DriverID=MSSQL Server=(localdb)\\v11.0 Database=master OSAuthent=Yes
- Herstellen einer Verbindung zu LocalDB und Zuordnen einer Datenbankdatei:
Server=(localdb)\\v11.0 DriverID=MSSQL ODBCAdvanced=AttachDbFileName=C:\\Users\\Alex\\ADDemo.mdf
Siehe auch
- Allgemeine Verbindungsparameter
- FAQs
- Konfigurieren von FireDAC-Treibern
- Verwalten von FireDAC-Verbindungsdefinitionen
Beispiele
- FireDAC MS SQL (Beispiel)