通过ODBC驱动程序17而非SQL Server本机客户端将FireDAC连接到SQL Server

问题描述

我想使用用于sql Server 17的最新Microsoft ODBC驱动程序连接我的FireDAC应用程序,但是我的连接始终使用sql Server Native Client 11驱动程序。

这是我试图指示所需驱动程序的代码

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

要检查使用的驱动程序,请引发异常并阅读错误消息:

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

[FireDAC] [Phys] [ODBC] [Microsoft] [sql Server Native Client 11.0] [sql Server]转换为勇气varchar'X'提示数据时出错。

如何告诉FireDAC使用sql Server 17的ODBC驱动程序的正确方法?另外,我还可以告诉FireDAC在设计时使用最新的ODBC驱动程序而不是本机客户端吗?。

谢谢。

解决方法

在设计时:将TFDPhysMSSQLDriverLink放在数据模块或表单上,并将ODBC驱动程序设置为:在下拉菜单中将用于SQL Server的ODBC驱动程序17

在那之后,打开您的TFDConnection并切换到 Info 标签,并检查它最终使用的驱动程序以及它提到的任何注释。

OP中的注释:为了对我有用,我需要在其DriverID属性上为TFDPhysMSMSSQLDriverLink组件命名,并将该名称设置为TFDConnection的DriverName属性。 >