-
Доброго времени суток.
Никак не могу найти решение проблемы вот решил спросить здесь, мож кто пнет в правильном направлении.
Проблема - из 1С выгружается dbf файлик с данными, при просмотре его обычном просмотрщике (типа dbfview) отображает данные нормально. При подключении через TTable и просмотре через TDBGrid вместо русских символов выдает кракозябры.
Должно быть "АнанасКусДолЖелан580лЖ/Б" выдает "RirirnEonAieCleri580eC/A".
Изменение кодировок в BDE ни к чему не привело.
Тоже самое видно и при просмотре через Database desktop.
Но если зайти в Database desktop и поствить в свойствах таблицы Table lang - ANSI все работает нормально.
Разница между файлами в 1 байте (29 вроде)
В том файле что отображается нормально значение - 57 в том что нет 65.
Это явно не проблема в кодировке Win - Dos. так как в моем случае кирилица отображается латиницей.
Если есть способ нормально подключить не используя БДЕ. подскажите
Буду рад за помощь.
-
> red_imp (28.01.2011 00:17:00) [0]
Используй АДО и OLEDB провайдера для FoxPro
-
Спасибо, пробовал, но результат аналогичный.
Если возможно напишите правильную строку подключения
-
> Изменение кодировок в BDE ни к чему не привело.
Pdox Ansi Cyr не помогает?
-
> clickmaker ©
К сожалению нет.
-
> Используй АДО и OLEDB провайдера для FoxPro
вроде как, сейчас не включается в винду (OLEDB точно, ODBC хз.), нужно ставить.
> Если возможно напишите правильную строку подключения
если нужно напиши как пробовал
-
> sniknik (28.01.2011 12:16:05) [5]
А что БДЕ не надо ставить?
-
> sniknik ©
Да в системе вроде как нет стандартного FoxPro
А пробовал вот так
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
При таком обращении проблема с кодировкой не снимается хотя выдает данные и вылезают ошибки с драйверами.
Если возможно напишите верную строку подключения в которой кодировка символов в файле 1251 или (ANSI).
А еще лучше как настроить так чтоб можно было работать через BDE.
-
> red_imp (28.01.2011 13:46:07) [7]
dBASE IV поддерживает только одну машинную кодировку, и поэтому работа с ней
это разного рода извращения.
-
OEMToChar ?
-
Именно так работает Эксель и БДЕ (если не указано другое).
По умолчанию предполагается, что таблица содержит правильные OEM коды, а у него не dBase IV, поскольку "Table lang - ANSI все работает нормально" dBase IV ни Table lang, ни 1251 не поддерживает по определению, это только ФоксПро начиная с версии 2.6 поддерживает, но его не поддерживает БДЕ
-
> А пробовал вот так
> 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\base\;Extended Properties=dBASE IV'
это Jet, не фокспро, причем без доп. настройки в реестре по умолчанию он использует внешний BDE если установлен, или внутренний BDE если нет. что не добавляет понятности в настройки кодировок... достаточно ошибиться в одном месте, и не работает, после запустить программу на другой машине... и не работает. ;)
у фокса свои проблемы (фичи/тонкости)... т.что советую, используй лучше встраиваемый движок, типа Halcyon (пользовался, правда давно...), там можно признак кодировки в файле попросту игнорировать.
-
> [11] sniknik © (28.01.11 14:59)
> используй лучше встраиваемый движок, типа Halcyon
Ещё лучше ADS, хоть это для просто прочитать и многовато.
-
Спасибо всем.
Буду пробовать использовать драйвера Фокспро. Они вроде работают правильно но не на всех машинах.
Ну и обязательно посмотрю движки