I am trying to migrate my application from ADO to FireDAC. I am using Microsoft SQL Server. My database server was installed with collation SENSITIVE CASE and the database was created with collation INSENSITIVE CASE. I did this configuration because my custumers has this configuration. But when I tried to migrate to FireDAC, the FireDAC driver (MSSQL) look the database collation and change the property "database name" to upper case. After that, many things didnt work, because the FireDAC didn't find the "database name" in sysdatabase. Can I turn off this function that change the "database name" property?
-
Have you tried to set the FDConnection property 'MetaCaseIns' to true? – Copilot Jul 28 '14 at 07:37
-
Yes, but didn't work. When I setted up the property 'MetaCaseIns' to true, the firedac component changed the database name to upper case. I need that the database name stay like typed. – MarceloSouza Jul 28 '14 at 14:03
-
I'm send link to this topic immediately to the FireDAC's author, hope he'll say something. – Sanders the Softwarer Dec 19 '14 at 11:52
-
Generally, if you troubled with FireDAC, you can try to ask at http://www.sql.ru/forum/1008012/firedac, English would be understood. – Sanders the Softwarer Dec 19 '14 at 11:58
3 Answers
I guess you're looking for the MetaCaseInsCat connection parameter. Try to disable catalog names case sensitivity autodetection and set it up to be case insensitive:
...
FDConnection1.Params.Add('MetaCaseInsCat=True');
FDConnection1.Connected := True;

- 7,822
- 2
- 21
- 44
-
@Dreamer64, could you elaborate, ideally with MCVE in a separate question, please? – Victoria Aug 31 '18 at 13:43
I find it that FireDAC is using ansi uppercase conversion to access the database, which in turn causes problems with MSSQL. In my case it was turkish. I found the fix to be easy. In OnBeforeConnect
of TFDConnection I used:
Params.Database := TRUpperCase(Params.Database);
Where TRUpperCase
is a function that properly converts turkish characters to uppercase(like i to İ, instead of i to I).

- 1,699
- 17
- 21
This is not a direct answer to the OP, but it may help future programmer like me who are having issue with case sensitivity in FireDAC
I'm using FireDAC with MSSQL. In order to use the 'LIKE' in a TFDQuery Filter in a non caseSensitive way : TFDQuery.FilterOptions
procedure TFDQuery_MyVersion.SetFilterText(const Value: string);
begin
FilterOptions := [TFilterOption.foCaseInsensitive];
inherited SetFilterText(TOldDatabaseSystemToMSSQL.Filter(Value));
end;

- 71
- 1
- 7