Sql server Delphi Firedac-区分大小写的问题

Sql server Delphi Firedac-区分大小写的问题,sql-server,delphi,firedac,Sql Server,Delphi,Firedac,我正在尝试将我的应用程序从ADO迁移到FireDAC。我正在使用Microsoft SQL Server。我的数据库服务器安装时区分大小写,数据库创建时区分大小写。我进行此配置是因为我的客户具有此配置。但当我尝试迁移到FireDAC时,FireDAC驱动程序(MSSQL)会查看数据库排序规则,并将属性“database name”更改为大写。在那之后,很多事情都不起作用,因为FireDAC在sysdatabase中找不到“数据库名”。我可以关闭此更改“数据库名称”属性的函数吗?我发现FireDA

我正在尝试将我的应用程序从ADO迁移到FireDAC。我正在使用Microsoft SQL Server。我的数据库服务器安装时区分大小写,数据库创建时区分大小写。我进行此配置是因为我的客户具有此配置。但当我尝试迁移到FireDAC时,FireDAC驱动程序(MSSQL)会查看数据库排序规则,并将属性“database name”更改为大写。在那之后,很多事情都不起作用,因为FireDAC在sysdatabase中找不到“数据库名”。我可以关闭此更改“数据库名称”属性的函数吗?

我发现FireDAC正在使用ansi大写转换来访问数据库,这反过来会导致MSSQL出现问题。就我而言,是土耳其语。我发现修复很容易。在我使用的TFD连接的
OnBeforeConnect
中:

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

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

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

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

这不是对OP的直接回答,但它可能会帮助像我这样在FireDAC中存在区分大小写问题的未来程序员

我将FireDAC与MSSQL一起使用。为了以不区分大小写的方式在TFDQuery筛选器中使用“LIKE”:TFDQuery.FilterOptions

procedure TFDQuery_MyVersion.SetFilterText(const Value: string);
begin
   FilterOptions := [TFilterOption.foCaseInsensitive];

   inherited SetFilterText(TOldDatabaseSystemToMSSQL.Filter(Value));
end;

您是否尝试将FDConnection属性“MetaCaseIns”设置为true?是,但无效。当我将属性“MetaCaseIns”设置为true时,firedac组件将数据库名称更改为大写。我需要数据库名称保持键入状态。我会立即将指向此主题的链接发送给FireDAC的作者,希望他能说些什么。一般来说,如果你对FireDAC有疑问,你可以试着问一下,英语可以理解。@Dreamer64,你能详细说明一下,最好是在另一个问题中与MCVE联系吗?