Verbinden Sie FireDAC über ODBC-Treiber 17 anstelle von SQL Server Native Client mit SQL Server
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
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.