Pokusaj koristiti WideString, to ti e VCL-ov wrapper za wchar_t, koji je uzput Unicode UTF16 verzija char. Ti momentalno koristis ANSI stringove sa kodnim tabelama i tvoja aplikacija se ponasa razlicno u zavisnosti konfiguracije windowsima.
Za delphi stvarno ne znam kako da ti cela aplikacija bude unicode. Ali access 2k i noviji po defolt za Text polja koristi Unicode t.j. UTF16, i kada vrednost stringa kojeg insertujes je tipa WideString, onda sta god zelis uradi, db grid ke vratiti pravu vrednost.
Jos samo u tvoj query ne zaboravi da DataType za svaki field u ADO tabeli/query postavis na ftWideString. Za ado tabelu automatski se postavlja WideString.
Posto je Access (2k i gore) obavezno unicode, mozes jednostavno na svaki TField koji zelis prikazati u dataset postaviti property Transliterate na false, taka da TField nece konvertirati unicode u ansi. I samo jos postavi na DBGrid font na bude Arial Unicode i sta god se uradi na windowsima tvoja ce aplikacija prikazivati tacno unete podatke. Ali pazi, ako na Dataset-ove TField objekt postavis transliterate na false, onda _moras_ vrednost uneti u unicode ako zelis da se upise pravilno u bazi.
Dodaj na BeforePost nesto slicno na:
TField->AsString = AnsiToWide(TField->AsString);
People who think they know everything tend to irritate those of us who do.