Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Использование БД FoxPro в Delphi   Найти похожие ветки 

 
Володя   (2004-03-18 14:48) [0]

Здравствуйте! Столкнулся с проблемой работы в Delphi с FoxPro-базами данных досовской кодировки. Подскажите пожалуйста - как перекодировать можно базу данных или как открыть её в Delphi правильно? Пока открывается база в виде краказябр и ес-сно ничего непонятно :(


 
DenK_vrtz ©   (2004-03-18 14:58) [1]

LANGDRIVER=dBASE RUS cp866


 
DenK_vrtz ©   (2004-03-18 15:00) [2]

Удалено модератором


 
Володя ©   (2004-03-18 15:03) [3]

А куда его ставить? При подключении бд? В ADOConnection? или куда?


 
sniknik ©   (2004-03-18 15:11) [4]

для ADO действуют настройки провайдера, частично и настройки BDE (когда пролвайдер (jet) использует BDE).
в общем настраивай в "подключении бд" (бд то дельфи небось? ;о)))))


 
Володя ©   (2004-03-18 15:18) [5]

Настройки провайдера все перебрал - изменить кодировку исходной базы данных (бд) FoxPro - не получается :(


 
sniknik ©   (2004-03-18 15:25) [6]

почему думаеш что все? (наивный :) у провайдера их может быть много, может быть и не настраиваемым, могут не включатся в строку подключения(эти имел ввиду? которые в строке).


 
Володя ©   (2004-03-18 15:39) [7]

нда, все - коорые в строке - там никакого LangDriver нету, и никаких опций для изменения кодировок - тю-тю... А как ещё можно опции провайдера достать?


 
Володя ©   (2004-03-18 15:57) [8]

Может дело в использовании ADO? Может стоит использовать BDE?
У них по-крайней мере есть функции NativeToAnsiBuf и AnsiToNativeBuf... Или все-таки при использовании ADO тоже можно нормальные данные вместо краказябры получать?


 
sniknik ©   (2004-03-18 16:15) [9]

> У них по-крайней мере есть функции NativeToAnsiBuf и AnsiToNativeBuf...
они есть и независимо от BDE, AnsiToOem / AnsiToOemBuff / OemToAnsi /OemToAnsiBuff

> Или все-таки при использовании ADO тоже можно нормальные данные вместо краказябры получать?
конечно можно, нужно только провайдера настроить (если он позволяет), или выбрать другого в противном случае.


 
Володя ©   (2004-03-18 16:19) [10]

Спасибо - попробую другие провайдеры, т.к. Jet мне явно не поможет в этом нелёгком деле :)


 
sniknik ©   (2004-03-18 20:45) [11]

ну наконец то... - Jet, (как гора с плечь;), надоело говорить ни о чем, конкретики хочется)
настройки зависят от установленности/неустановленности BDE. следовательно в BDEAdmine в одном случае и в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage = OEM/ANSI
в другом.
ну и других провайдеров тоже. (ODBC VFP рекомендую в случае с чисто фоксовскими таблицами)


 
Janbolat ©   (2004-03-19 06:44) [12]

Установи visual foxpro он сам конвертирует базы старых vfp


 
KSergey ©   (2004-03-19 07:50) [13]

Для доступа к DBF рекомендую Halcyon.
Впрочем понятно, что проблема автора не в этом. но если захочется пользоваться и индексами - то читай первое предложение.


 
Володя ©   (2004-03-19 08:55) [14]

>Ksergey

А что такое Halcyon и что он могёт?

>Janbolat

Конвертация старых баз в новые не поможет по причине постоянной работы других людей с базой старого образца в других прогах, тем самым тогда придётся автоматически после каждого добавления нового элемента в базу перекодировать обратно в старый формат всю базу...


 
sniknik ©   (2004-03-19 10:43) [15]

Halcyon
http://www.vodonosov.newmail.ru/develop/develop.htm
возможно не пойдет "по причине постоянной работы других людей с базой старого образца в других прогах", изза различных блокировок при одновременном доступе (слышал такое, проверять не доводилось).


 
Володя ©   (2004-03-19 15:25) [16]

> sniknik

Огромное человеческое спасибо!!! Этот Halcyon помог - он как-раз и делает то, что нужно - переводит виндовскую кодировку 1251 в 866 досовскую и обратно автоматически!!! Супер - скачал библиотеку, установил - сделал на скоряк тестовую прогу для работы с той базой - и что вы думаете - люди в досовских прогах мою новую запись, сделанную в винде, видят и прекрасно всё понимают - не то, что раньше - краказябры...

Спасибо всем за помощь!!! Конечно это только тестовая прога, но там уж будет легче разбираться, раз такой этап уже пройден!!!


 
Володя ©   (2004-03-29 08:33) [17]

Возник вопрос по Halcyon....
Базы открываются, записи добаляются в нормальной кодировке - всё ок... Пошёл дальше фильтр юзать... И тут - подводный камень... Фильтр отказывается работать :( Выдаёт ошибку в исходниках при попытке определить формат одной из переменных исходника Halcyon... Старая версия Halcyon не помогает решить проблему... Может кто работал с Halcyon - подскажите, плиз, как исправить исходник для корректной работы фильтра...


 
Anatoly Podgoretsky ©   (2004-03-29 09:44) [18]

Используй АДО с соответсвующим провайдером, а не суррогаты


 
Володя ©   (2004-03-29 10:00) [19]

А как в обычном провайдере переводить данные из одной кодировки в другую (из 866 в 1251 и обратно)? Halcyon хоть такую задачу решил, правда с фильтром досадно получилось :(


 
sniknik ©   (2004-03-29 11:55) [20]

Володя ©   (29.03.04 10:00) [19]
в [11] посте для ADO-Jet-dBase приведены варианты настроек кодировки.

Володя ©   (29.03.04 08:33) [17]
> Может кто работал с Halcyon - подскажите, плиз, как исправить исходник для корректной работы фильтра...
это же исходник! если знаеш в чем проблема(место) береш и правиш как тебе надо. (но скорее всего там все нормально, просто фильтр неправильно задаеш)


 
Володя ©   (2004-03-29 13:07) [21]

Нашёл дыру в задании фильтра... Вроде заработало... А до этого пытался переделать исходники... Вот блин намудрили хорошо ребята... Стиль хороший :) Зря я на них ругался :)



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.024 c
3-1080569640
Алексей П.
2004-03-29 18:14
2004.04.25
Друзья! Помогите с параметрами TSQLConnection


6-1077962919
Kolyan
2004-02-28 13:08
2004.04.25
TelnetServer


1-1081148741
zxcvb
2004-04-05 11:05
2004.04.25
Как в ячейки StringGrid сделать CheckBox?


1-1081264515
Norfolk
2004-04-06 19:15
2004.04.25
Запись TStrings в файл


3-1080537249
WondeRu
2004-03-29 09:14
2004.04.25
ADOConnection.ConnectionString