Connetti FireDAC a SQL Server tramite il driver ODBC 17 anziché SQL Server Native Client

Sep 24 2020

Voglio connettere la mia applicazione FireDAC utilizzando l'ultimo driver Microsoft ODBC per SQL Server 17, ma la mia connessione utilizza sempre il driver SQL Server Native Client 11.

Questo è il codice che ho provato ad indicare il driver desiderato:

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

Per controllare il driver utilizzato, sollevo un'eccezione e leggo il messaggio di errore:

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

[FireDAC] [Phys] [ODBC] [Microsoft] [SQL Server Native Client 11.0][SQL Server] Errore di conversione al convertir el valore varchar 'X' al tipo di dati int.

Qual è il modo corretto per dire a FireDAC di utilizzare il driver ODBC per SQL Server 17? Inoltre, potrei anche dire a FireDAC di utilizzare l'ultimo driver ODBC in fase di progettazione invece del client nativo?

Grazie.

Risposte

1 Brian Sep 26 2020 at 01:32

Per la fase di progettazione: rilascia un TFDPhysMSSQLDriverLink sul modulo o modulo dati e imposta il driver ODBC su: Driver ODBC 17 per SQL Server nell'elenco a discesa.

Dopodiché apri la tua TFDConnection e passa alla scheda Info e controlla quale driver finisce per utilizzare insieme alle note che menziona.

Nota dall'OP: Per funzionare per me ho dovuto dare un nome al componente TFDPhysMSSQLDriverLink sulla sua proprietà DriverID e impostare quel nome sulla proprietà DriverName di TFDConnection.