Verbinden Sie FireDAC über ODBC-Treiber 17 anstelle von SQL Server Native Client mit SQL Server

Sep 24 2020

Ich möchte meine FireDAC-Anwendung mit dem neuesten Microsoft ODBC-Treiber für SQL Server 17 verbinden, meine Verbindung verwendet jedoch immer den SQL Server Native Client 11-Treiber.

Dies ist der Code, mit dem ich versucht habe, den gewünschten Treiber anzugeben:

FireDriverLink := TFDPhysMSSQLDriverLink.Create(nil);
FireDriverLink.ODBCDriver := 'ODBC Driver 17 for SQL Server';
FDConnection.DriverName := FireDriverLink.BaseDriverId;

Um den verwendeten Treiber zu überprüfen, löse ich eine Ausnahme aus und lese die Fehlermeldung:

FDConnection.ExecSQL('select convert(integer, ''X'')');

[FireDAC] [Phys] [ODBC] [Microsoft] [SQL Server Native Client 11.0][SQL Server] Fehler bei der Konvertierung der Konvertierung des Wertes varchar 'X' al tipo de datos int.

Wie kann FireDAC ordnungsgemäß angewiesen werden, den ODBC-Treiber für SQL Server 17 zu verwenden? Könnte ich FireDAC auch anweisen, zur Entwurfszeit den neuesten ODBC-Treiber anstelle des nativen Clients zu verwenden?

Vielen Dank.

Antworten

1 Brian Sep 26 2020 at 01:32

Für die Entwurfszeit: Legen Sie einen TFDPhysMSSQLDriverLink auf dem Datenmodul oder Formular ab und setzen Sie den ODBC-Treiber in der Dropdown- Liste auf: ODBC-Treiber 17 für SQL Server .

Öffnen Sie danach Ihre TFDConnection, wechseln Sie zur Registerkarte " Info" und überprüfen Sie, welchen Treiber sie letztendlich verwendet, zusammen mit den darin erwähnten Notizen.

Anmerkung aus dem OP: Um für mich zu arbeiten, musste ich der TFDPhysMSSQLDriverLink-Komponente in ihrer DriverID-Eigenschaft einen Namen geben und diesen Namen auf die DriverName-Eigenschaft der TFDConnection setzen.