![]() |
#1 |
Участник
|
Экспорт в dbf данных на украинском языке
При экспорте данных из Axapta (на Украинском языке) в dbf фаил, украинская "i" заменяется на знак "?".
При экспорте используется класс: CCADOCommand. Что можете посоветовать? |
|
![]() |
#2 |
Участник
|
Подозреваю, что что-то с кодировкой.
Не уверен, что в DBF вообще можно указывать кодировку. Может переместить тему в Украинский раздел? http://axforum.info/forums/forumdisplay.php?f=73 |
|
![]() |
#3 |
злыдень
|
Что то уже слышал про эту букву..
м.б. попробовать экспортить в Unicode??
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#4 |
Участник
|
По моему с Дэлфями шла утилита, которая могла менять кодировку внутри ДБФ!
|
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от mazzy
Может переместить тему в Украинский раздел?
http://axforum.info/forums/forumdisplay.php?f=73 |
|
![]() |
#6 |
Участник
|
Вот, попробуйте юзать вот этот проектик.
Должно помочь, хотя - это больше для импорта из того же DBF (В нем классик для преобразования между тремя кодировками: CP1251, CP866, RUSCII) Еще советовали когда-то поиграться с различными драйверами в ODBC - на некоторых из них (то ли DBase, то ли FoxPro) работает. Посмотрите также функцию WinApi::CharToOemBuff Последний раз редактировалось kashperuk; 17.08.2006 в 11:51. |
|
![]() |
#7 |
Участник
|
Попробуйте добавить в строку подключения
X++: Locale Identifier=1058
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от AndyD
Попробуйте добавить в строку подключения
X++: Locale Identifier=1058 Код: m_AdoConnection.open("Provider=Microsoft.Jet.OLEDB.4.0; Extended Properties=dBase IV; Locale Identifier=1058; Data Source=" + m_FilePath + "; "); |
|
![]() |
#9 |
Участник
|
А вы вообще в какой кодировке пишите?
Сейчас попробовал в WIN1251 - все нормально записывается X++: static void AdoUkrainian(Args _args) { CCAdoConnection conn; CCAdoCommand com; #CCADO ; conn = new CCAdoConnection(); conn.connectionString("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\Temp\\DBF\\;" + "Extended Properties=DBASE IV"); conn.open(); com = new CCAdoCommand(); com.activeConnection(conn); com.commandType(#adCmdText); com.commandText("update tbl1 set field1 = '" + num2char(178) + num2char(179) + num2char(191) + "' where id = '1'"); com.execute(); }
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#10 |
Участник
|
О! Вспомнил
По умолчанию для Jet-драйвера xBase используется кодировка CP866. В ней нет украинских символов "Іі". По-этому при перекодировке из WIN1251 происходит замена этих символов на вопросы Можно поменять кодировку на WIN1251, тогда этой проблемы не будет. Для этого надо изменить значение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage с OEM на ANSI
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от AndyD
О! Вспомнил
По умолчанию для Jet-драйвера xBase используется кодировка CP866. В ней нет украинских символов "Іі". По-этому при перекодировке из WIN1251 происходит замена этих символов на вопросы Можно поменять кодировку на WIN1251, тогда этой проблемы не будет. Для этого надо изменить значение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage с OEM на ANSI А можно решить эту проблему использованием другого драйвера? Не можете подсказать какого? |
|
![]() |
#12 |
Участник
|
Попробуйте драйвер для VisualFoxPro.
Microsoft OLE DB Provider for Visual FoxPro 9.0
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#13 |
Участник
|
Цитата:
Сообщение от AndyD
Попробуйте драйвер для VisualFoxPro.
Microsoft OLE DB Provider for Visual FoxPro 9.0 |
|
![]() |
#14 |
Участник
|
X++: Provider=VFPOLEDB.1;Data Source=D:\Temp\DBF;Collating Sequence=MACHINE
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: SerAl (1). |
![]() |
#15 |
Участник
|
Спасибо, буду пробывать.
|
|
![]() |
#16 |
Участник
|
глюки с кодировкой :(
Цитата:
Сообщение от AndyD
![]() О! Вспомнил
По умолчанию для Jet-драйвера xBase используется кодировка CP866. В ней нет украинских символов "Іі". По-этому при перекодировке из WIN1251 происходит замена этих символов на вопросы Можно поменять кодировку на WIN1251, тогда этой проблемы не будет. Для этого надо изменить значение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage с OEM на ANSI ![]() ![]() Надо кровь с носа разобраться с настройками Jet. Помогите пожалуйста кто чем может - горю! |
|
![]() |
#17 |
Участник
|
Вышли плиз маленький кусочек данных (табличку dbf) поковырятся ...
|
|
![]() |
#18 |
Участник
|
Попробуй поиграться с 29байтом dbf файла, он отвечает за кодировку.
Попробуй поставить значение 0x57(87) (кодовая страница 1251 Windows ANSI) Ссылка на структуру dbf : http://www.delphikingdom.com/asp/vie...624&mode=print |
|
|
![]() |
||||
Тема | Ответов | |||
Экспорт из журнала базы данных | 3 | |||
Импорт данных из DBF в Аксапту | 1 | |||
Тормозит Экспорт/Импорт данных | 28 | |||
Выгрузка числовых данных в dbf файл | 2 | |||
Экспорт в *.dbf | 2 |
|