Re[2]: Transliterate под ADO из DBF (FPD 2.5)
От: MarlboroMan Россия  
Дата: 06.08.02 17:01
Оценка:
Здравствуйте MarlboroMan, Вы писали:

MM>Здравствуйте MarlboroMan, Вы писали:


MM>>некорректно отображается содержимое TStringField (независимо от Transliterate)...


MM>>пытался:

MM>>ADOQuery, ADOTable с драйверами для dBase...

MM>>конструкция:


MM>>procedure TForm1.GetText(Sender: TField; var Text: String;

MM>> DisplayText: Boolean);
MM>>var
MM>> Buff: Pchar;
MM>>begin
MM>> Text := Sender.AsString;
MM>> Buff := AllocMem(Length(Text) + 1);
MM>> OEMToANSI(PChar(Text), Buff);
MM>> Text := Buff;
MM>> FreeMem(Buff);
MM>>end;

MM>>навешиваемая на OnGetText для соответствующего TStringField никаких изменений не дает...


MM>>может кто сталкивался?


MM>Короче это проблемма Delphi 6 (SP 2)... под Delphi 5 (с соответствующими апдейтами) всё ок...


MM>имейте ввиду...



при дальнейших "обследованиях" выяснилось интересное...

трабла коренится, однака, в реализации ADO в MDAC 2.7: судя по всему перепутано направление транслитерации в Microsoft OLE DB Provider for ODBC Drivers...

под Delphi 5 + MDAC 2.5 — всё ОК. (Win2k AS SP2). Скомпилированное приложение оттуда косячит при переносе под WinXP+MDAC 2.7, при этом используется ровно тот же ODBC драйвер для dBase (4.00.6019.00). Сделать даунгрейд до MDAC 2.5 не удалось в связи с
Q: How can I roll back to a previous version of MDAC if an upgrade breaks my applications?
A: If you need to roll back to a previous version of MDAC, you have two primary options, which generally correspond to the type of system involved (test or production):
On production systems, use your backup or disk image (taken immediately before the upgrade) to return to the configuration before the upgrade was installed.
On test systems, the simplest solution is often to reformat the hard drive and reinstall all applications.


Ставить на Win2k MDAC 2.7 не рискнули по той же причине

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.