Transliterate под ADO из DBF (FPD 2.5)
От: MarlboroMan Россия  
Дата: 05.08.02 15:09
Оценка:
некорректно отображается содержимое TStringField (независимо от Transliterate)...

пытался:
ADOQuery, ADOTable с драйверами для dBase...

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

procedure TForm1.GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
var
Buff: Pchar;
begin
Text := Sender.AsString;
Buff := AllocMem(Length(Text) + 1);
OEMToANSI(PChar(Text), Buff);
Text := Buff;
FreeMem(Buff);
end;

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

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

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re: Transliterate под ADO из DBF (FPD 2.5)
От: MarlboroMan Россия  
Дата: 06.08.02 11:57
Оценка: 15 (1)
Здравствуйте 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>может кто сталкивался?


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

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

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
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 не рискнули по той же причине

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re: Transliterate под ADO из DBF (FPD 2.5)
От: MarlboroMan Россия  
Дата: 08.08.02 18:21
Оценка: 30 (3)
Здравствуйте 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>может кто сталкивался? :???:


короче... "- Если мне, обломку мертвого прошлого, позволено будет употребить ученое слово "резюмируя"... В чем-то необычная судьба, в чем-то невероятно банальная, ибо все, что прозвучало, применимо ко многим до него и ко многим после, таков уж наш мир..." (А. Бушков "Рацарь из неоткуда")

итак резюмируя:
после нескольких эксперементов выяснилось, что баг сей не в:
ситуация удачно была повторена после переустановки ОС (WinXP) траблы не наблюдалось, а после установки пакета софта (всевозможные апдэйты, Microsoft Office, Delphi 6 и компоненты к нему, клиент для MS SQL Server 2000, и т.д.) трабла появилась

правда есть одно "но": после отката всего постановленного (СПАСИБО Win XP) и пошаговой установки этого же пакета софта с проверкой на "глючность" после каждого шага — результат не повторился... но (то самое "но") точно знаю что порядок установки был не тот :(... увы... каюсь... "ибо грешен"... повторять сей подвиг силов у меня уже нет, да и время поджимает — надо всёж таки и работать :super: будет возможность — повторю всё "по-честному". обещаю!

мои выводы:
1. главное подозрение падает на "пакеты критических обновлений" (Windows Update). есть там такой пакетик:
Q282010: Microsoft Jet 4.0 с пакетом обновления 6 (Windows XP)Размер загрузки: 3.2 МБ, < 1 мин.
Microsoft Jet 4.0 с пакетом обновления 6 (SP6) предоставляет последние обновления СУБД Jet 4.0 для Windows XP. Это обновление описано в статье Q282010 базы знаний Майкрософт. Загрузите его, чтобы получить последние обновления для Jet 4.0.
, вот на него и грешу... тока в первые разы я ставил все пакеты сразу, а в последнем случае — поотдельности.
2. следствие вывода № 1: "не всё то золото что блестит"... установка пакетов обновлений дело рисковое, но уж ежели рискнул, то наверно стоит ставить каждый пакет поотдельности...
3. запоминайте порядок установки софта!!! может очень пригодиться... правда XP это делает автоматически :) (большое ей за это спасибо!)

Всего ДОБРОГО!!!
Надеюсь что эти грабли стали чуть более понятны и заметны

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