![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование БД FoxPro в Delphi
Володя © (2004-03-18 14:48:00)Здравствуйте! Столкнулся с проблемой работы в Delphi с FoxPro-базами данных досовской кодировки. Подскажите пожалуйста - как перекодировать можно базу данных или как открыть её в Delphi правильно? Пока открывается база в виде краказябр и ес-сно ничего непонятно :(
Володя (2004-03-29 13:07:00) [1]Нашёл дыру в задании фильтра... Вроде заработало... А до этого пытался переделать исходники... Вот блин намудрили хорошо ребята... Стиль хороший :) Зря я на них ругался :)
sniknik (2004-03-29 11:55:00) [2]Володя © (29.03.04 10:00) [19]
в [11] посте для ADO-Jet-dBase приведены варианты настроек кодировки.
Володя © (29.03.04 08:33) [17]
> Может кто работал с Halcyon - подскажите, плиз, как исправить исходник для корректной работы фильтра...
это же исходник! если знаеш в чем проблема(место) береш и правиш как тебе надо. (но скорее всего там все нормально, просто фильтр неправильно задаеш)
Володя (2004-03-29 10:00:00) [3]А как в обычном провайдере переводить данные из одной кодировки в другую (из 866 в 1251 и обратно)? Halcyon хоть такую задачу решил, правда с фильтром досадно получилось :(
Anatoly Podgoretsky (2004-03-29 09:44:00) [4]Используй АДО с соответсвующим провайдером, а не суррогаты
Володя (2004-03-29 08:33:00) [5]Возник вопрос по Halcyon....
Базы открываются, записи добаляются в нормальной кодировке - всё ок... Пошёл дальше фильтр юзать... И тут - подводный камень... Фильтр отказывается работать :( Выдаёт ошибку в исходниках при попытке определить формат одной из переменных исходника Halcyon... Старая версия Halcyon не помогает решить проблему... Может кто работал с Halcyon - подскажите, плиз, как исправить исходник для корректной работы фильтра...
Володя (2004-03-19 15:25:00) [6]> sniknik
Огромное человеческое спасибо!!! Этот Halcyon помог - он как-раз и делает то, что нужно - переводит виндовскую кодировку 1251 в 866 досовскую и обратно автоматически!!! Супер - скачал библиотеку, установил - сделал на скоряк тестовую прогу для работы с той базой - и что вы думаете - люди в досовских прогах мою новую запись, сделанную в винде, видят и прекрасно всё понимают - не то, что раньше - краказябры...
Спасибо всем за помощь!!! Конечно это только тестовая прога, но там уж будет легче разбираться, раз такой этап уже пройден!!!
sniknik (2004-03-19 10:43:00) [7]Halcyon
http://www.vodonosov.newmail.ru/develop/develop.htm
возможно не пойдет "по причине постоянной работы других людей с базой старого образца в других прогах", изза различных блокировок при одновременном доступе (слышал такое, проверять не доводилось).
Володя (2004-03-19 08:55:00) [8]>Ksergey
А что такое Halcyon и что он могёт?
>Janbolat
Конвертация старых баз в новые не поможет по причине постоянной работы других людей с базой старого образца в других прогах, тем самым тогда придётся автоматически после каждого добавления нового элемента в базу перекодировать обратно в старый формат всю базу...
KSergey (2004-03-19 07:50:00) [9]Для доступа к DBF рекомендую Halcyon.
Впрочем понятно, что проблема автора не в этом. но если захочется пользоваться и индексами - то читай первое предложение.
Janbolat (2004-03-19 06:44:00) [10]Установи visual foxpro он сам конвертирует базы старых vfp
sniknik (2004-03-18 20:45:00) [11]ну наконец то... - Jet, (как гора с плечь;), надоело говорить ни о чем, конкретики хочется)
настройки зависят от установленности/неустановленности BDE. следовательно в BDEAdmine в одном случае и в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage = OEM/ANSI
в другом.
ну и других провайдеров тоже. (ODBC VFP рекомендую в случае с чисто фоксовскими таблицами)
Володя (2004-03-18 16:19:00) [12]Спасибо - попробую другие провайдеры, т.к. Jet мне явно не поможет в этом нелёгком деле :)
sniknik (2004-03-18 16:15:00) [13]> У них по-крайней мере есть функции NativeToAnsiBuf и AnsiToNativeBuf...
они есть и независимо от BDE, AnsiToOem / AnsiToOemBuff / OemToAnsi /OemToAnsiBuff
> Или все-таки при использовании ADO тоже можно нормальные данные вместо краказябры получать?
конечно можно, нужно только провайдера настроить (если он позволяет), или выбрать другого в противном случае.
Володя (2004-03-18 15:57:00) [14]Может дело в использовании ADO? Может стоит использовать BDE?
У них по-крайней мере есть функции NativeToAnsiBuf и AnsiToNativeBuf... Или все-таки при использовании ADO тоже можно нормальные данные вместо краказябры получать?
Володя (2004-03-18 15:39:00) [15]нда, все - коорые в строке - там никакого LangDriver нету, и никаких опций для изменения кодировок - тю-тю... А как ещё можно опции провайдера достать?
sniknik (2004-03-18 15:25:00) [16]почему думаеш что все? (наивный :) у провайдера их может быть много, может быть и не настраиваемым, могут не включатся в строку подключения(эти имел ввиду? которые в строке).
Володя (2004-03-18 15:18:00) [17]Настройки провайдера все перебрал - изменить кодировку исходной базы данных (бд) FoxPro - не получается :(
sniknik (2004-03-18 15:11:00) [18]для ADO действуют настройки провайдера, частично и настройки BDE (когда пролвайдер (jet) использует BDE).
в общем настраивай в "подключении бд" (бд то дельфи небось? ;о)))))
Володя (2004-03-18 15:03:00) [19]А куда его ставить? При подключении бд? В ADOConnection? или куда?
DenK_vrtz (2004-03-18 15:00:00) [20]Удалено модератором