DBF в WIN/Unicode....?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Swift
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 15.11.2007 (Чт) 10:39

DBF в WIN/Unicode....?

Сообщение Swift » 15.11.2007 (Чт) 10:41

Есть DBF в WIN-кодировке. Нужно её перегнать в MDB. При экспорте - поля получаются в крякозябриках. Ведь Аксес не дает выбирать кодировку при экспорте. Возникло серьезное подозрение, кто это юникод, так как в результате текст в полях получается длинее в 2 раза.

Какой выход из ситуации?

p.s. Как вариант - хочу написать прогу в VB - "перебивать" поля из одной кодировки в другую но это гемор, а учитывая то, что записей около 2млн. - еще и долго.

Спасибо!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.11.2007 (Чт) 14:32

Попробуй подключить файл, как связанную таблицу, при этом ты можешь выбрать провайдера. Выбери FoxPro-шный девятый провайдер (на сайте MS есть), он вроде бы наиболее прилично с DBF-работает.
Lasciate ogni speranza, voi ch'entrate.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 15.11.2007 (Чт) 16:12

Access предполагает, что DBF файл будет в кодировке DOS (866).
Если тебе нужно один раз затянуть dbf'ку с кодировкой cp1251, можно воспользоваться утилиткой во вложении и сконвертировать его в 866 кодировку, а потом уже импортировать в Access
Пример использования писал(а):convert.exe filename.dbf dos
аналогично в cp1251
convert.exe filename.dbf win


Ну или воспользоваться вариантом alibek'a
У вас нет доступа для просмотра вложений в этом сообщении.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Swift
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 15.11.2007 (Чт) 10:39

Сообщение Swift » 16.11.2007 (Пт) 18:37

Всем спасибо.
Вроде как вырулил - нашел неплохую утилиту DBF2MDB - она при конвертации позволяет выбрать кодировку.

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 11.03.2008 (Вт) 14:07

VVitafresh писал(а):Access предполагает, что DBF файл будет в кодировке DOS (866).
Если тебе нужно один раз затянуть dbf'ку с кодировкой cp1251, можно воспользоваться утилиткой во вложении и сконвертировать его в 866 кодировку, а потом уже импортировать в Access
Пример использования писал(а):convert.exe filename.dbf dos
аналогично в cp1251
convert.exe filename.dbf win


Ну или воспользоваться вариантом alibek'a

а исходничек нид не завалялся?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 11.03.2008 (Вт) 15:52

Нет, исходников у меня не было.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.03.2008 (Сб) 3:22

А самое правильное - разобраться с 29-м байтиком DBF-ки.

С FoxPro for Dos 2.6 шла утилитка позволяющая правильно установить этот байтик для тех DBF-ок где он не указан... Но то же самое можно поделать и ручками.

В частности значения 29-го байта:

0x26(38) кодовая страница 866 DOS Russian
0x57(87) кодовая страница 1251 Windows ANSI
0x00(0) игнорируется
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 15.03.2008 (Сб) 21:29

а для *.db такой байтик есть?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.03.2008 (Вс) 0:52

Бяка писал(а):а для *.db такой байтик есть?


Не знаю - смотри формат db-файлов.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 210

    TopList  
cron