Delphi Firedac - 案例敏感问题

时间:2014-07-25 16:14:04

标签: sql-server delphi firedac

我正在尝试将我的应用程序从ADO迁移到FireDAC。我正在使用Microsoft SQL Server。我的数据库服务器安装了排序规则SENSITIVE CASE,数据库是使用排序规则INSENSITIVE CASE创建的。我做了这个配置,因为我的客户有这个配置。但是当我尝试迁移到FireDAC时,FireDAC驱动程序(MSSQL)会查看数据库整理并更改属性"数据库名称"大写。在那之后,许多事情都没有用,因为FireDAC没有找到"数据库名称"在sysdatabase中。我可以关闭此功能来更改"数据库名称"属性?

3 个答案:

答案 0 :(得分:2)

我猜您正在寻找MetaCaseInsCat连接参数。尝试禁用目录名称区分大小写自动检测并将其设置为不区分大小写:

...
FDConnection1.Params.Add('MetaCaseInsCat=True');
FDConnection1.Connected := True;

答案 1 :(得分:0)

我发现FireDAC正在使用ansi大写转换来访问数据库,从而导致MSSQL出现问题。在我的情况下,它是土耳其人。我发现修复很简单。在我使用的OnBeforeConnect TFDConnection中:

Params.Database := TRUpperCase(Params.Database);

其中TRUpperCase是一个将土耳其字符正确转换为大写字母的函数(如i到İ,而不是i到I)。

答案 2 :(得分:0)

这不是OP的直接答案,但它可能有助于像我这样在FireDAC中遇到区分大小写问题的未来程序员

我正在使用FireDAC和MSSQL。为了以非caseSensitive方式在TFDQuery Filter中使用'LIKE':TFDQuery.FilterOptions

{{1}}