Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Использование БД 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.037 c
3-1080194760
ГАГН
2004-03-25 09:06
2004.04.25
DBComboBox


7-1073774726
murdor
2004-01-11 01:45
2004.04.25
Комнонент для работы с LPT


4-1077807916
Islander
2004-02-26 18:05
2004.04.25
Проблемы с WM_SYSCOMMAND


14-1080882768
Девушка
2004-04-02 09:12
2004.04.25
Выполнено, но с ошибками на странице


1-1081334577
}|{yk
2004-04-07 14:42
2004.04.25
Об интернационализации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский