Próbuję przenieść moją aplikację z ADO do FireDAC. Korzystam z Microsoft SQL Server. Mój serwer bazy danych został zainstalowany z sortowaniem SENSITIVE CASE, a baza danych została utworzona z sortowaniem INSENSITIVE CASE. Zrobiłem tę konfigurację, ponieważ moja firma ma taką konfigurację. Ale kiedy próbowałem migrować do FireDAC, sterownik FireDAC (MSSQL) sprawdza sortowanie bazy danych i zmienia nazwę właściwości "database name" na wielkie litery. Potem wiele rzeczy nie działało, ponieważ FireDAC nie znalazł "bazy danych" w bazie danych sysdatabase. Czy mogę wyłączyć tę funkcję, która zmienia właściwość "nazwa bazy danych"?Delphi Firedac - Case Sensitive numer
Odpowiedz
Uważam, że FireDAC używa konwersji dużych liter ansi, aby uzyskać dostęp do bazy danych, co z kolei powoduje problemy z MSSQL. W moim przypadku było to tureckie. Stwierdziłem, że poprawka jest łatwa. W OnBeforeConnect
z TFDConnection użyłem:
Params.Database := TRUpperCase(Params.Database);
Gdzie TRUpperCase
to funkcja, która poprawnie konwertuje znaki turecki na wielkie (jak mi się Ja, zamiast I do I).
Domyślam się, że szukasz parametru połączenia MetaCaseInsCat. Spróbuj wyłączyć nazwy Katalog case czułości automatyczne wykrywanie i ustawić go jako przypadek niewrażliwe:
...
FDConnection1.Params.Add('MetaCaseInsCat=True');
FDConnection1.Connected := True;
To nie jest bezpośrednią odpowiedzią na PO, ale może pomóc w przyszłości programator jak ja, którzy mają problem z wrażliwością na sprawy w FireDAC
Używam FireDAC z MSSQL. W celu wykorzystania „podobnego” w filtrze TFDQuery w nie caseSensitive sposób: TFDQuery.FilterOptions
procedure TFDQuery_MyVersion.SetFilterText(const Value: string);
begin
FilterOptions := [TFilterOption.foCaseInsensitive];
inherited SetFilterText(TOldDatabaseSystemToMSSQL.Filter(Value));
end;
Czy próbował ustawić właściwość FDConnection „MetaCaseIns” true? – Copilot
Tak, ale nie działa. Kiedy ustawiłem właściwość "MetaCaseIns" na wartość true, składnik firedac zmienił nazwę bazy danych na wielką. Potrzebuję, aby nazwa bazy danych pozostała jak wpisana. – user3877647
Wysyłam link do tego tematu natychmiast do autora FireDAC, mam nadzieję, że coś powie. –