Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Кодировка при импорте из ДБФ / 21 сообщений из 21, страница 1 из 1
22.02.2006, 09:26
    #33559884
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
АСА вер. 9.0.2

В консоли ИнтерактивСКЛ пытаюсь импортировать в свою базу файл формата ДБФ:

Код: plaintext
input into LG_0106_00 from 'c:\temp\0\lg_0106_00.dbf' format DBASE;

в результате получается вот такая картина:

FAM,DTR,TIP_DOC,N_DOC,OR_DOC,KATEG

'Ђ‰‹ЂђЋ‚Ђ','1955-03-02','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','000926','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў«.','€­ў.I б⥯.'
'ЂЉЊ€?…‚Ђ','1951-11-21','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','000405','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў«.','€­ў.I б⥯.'
'ЂЉ‘…ЌЋ‚','1968-07-15','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','002576','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў«.','€­ў.II б⥯.'
'ЊЋђЋ‡Ћ‚','1991-10-28','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','003421','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў« бвЁ','ђҐЎ.-Ё­ў.'
'Ђ‹€”€ђ…ЌЉЋ','1986-12-06','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','000446','Ћ‚„ Ј.‚Ё«озЁ­бЄ ','€­ў.III б⥯.'
'Ђ‹’›ЌЃЂ…‚','1963-07-14','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','000182','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў« бвЁ','ѓа ¦¤.Ё§ ЏЋђ'
'ЂЌЂ?Љ€Ќ','1949-06-25','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','000157','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў«.','€­ў.I б⥯.'
'ЂЌЂ?Љ€Ќ','2001-08-24','‘ўЁ¤ҐвҐ«мбвў® ® ஦¤Ґ­ЁЁ','005041','®в¤Ґ« ‡Ђѓ‘ Ј.‚Ё«озЁ­бЄ ','ђҐЎ.-Ё­ў.'
'ЂЌ„ђ……‚Ђ','1960-01-01','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','003139','Ћ‚„ Ј.‚Ё«озЁ­бЄ ','—«Ґ­л ᥬҐ© Ї®ЈЁЎиЁе ў/б«. Ћ‚„,ѓЏ‘,ѓЃ.“€‘'
'ЂЌ„ђ…ЉЋ‚','1931-08-18','Џ бЇ®ав Ја ¦¤ ­Ё­  ђ®ббЁЁ','001705','Ћ‚„ Ј.‚Ё«озЁ­бЄ  Љ ¬з вбЄ®© ®Ў«.','€­ў.II б⥯.'


Читаю БОЛ, там написано что задание кодировки возможно только при импортировании файлов типа АСКИИ:

Код: plaintext
INPUT INTO inventory FROM stock.txt FORMAT ASCII (item, quantity);

Пытался установить кодировку командой

SET TEMPORARY OPTION DEFAULT_ISQL_ENCODING = '866'

но ничего не получилось.

Подскажите пожалуйста, а можно ли как-нибудь указать кодировку при импорте ДБФ-ок ? А то очень уж не хочется делать промежуточные конвертации из ДБФ в текстовик.
...
Рейтинг: 0 / 0
22.02.2006, 09:57
    #33559945
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Насколько я понимаю, ты пытаешься сделать это из ISQL, при этом кодировка таблицы DBF 866, а кодировка сервера 1251, и включена автоматическая трансляция кодировок, ключик -ct, кажется так, отсуствует, на тему ключика могу и ошибаться, выходов по моему опыту 2-а:
1. Подключить данную таблицу через прокси-таблицу
2. Запустить ISQL указав в свойствах соединения, что у character set соединения cp866, и выполнить твою команду, в этом случае сервер автоматически перекодирует 866 в 1251.

А в твоем случае, он считает, что кодировка сервера 1251, кодировка сессии 1251 и следовательно с данными ничего делать не надо, просто их надо вставить, вот и результат...
...
Рейтинг: 0 / 0
22.02.2006, 10:05
    #33559961
old_joy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Если нет memo-полей, попробуй указать format foxpro
...
Рейтинг: 0 / 0
22.02.2006, 13:35
    #33560740
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Абсолютно ничего не помогает.

Попробовал:

1.

Код: plaintext
1.
2.
3.
4.
SET TEMPORARY OPTION DEFAULT_ISQL_ENCODING = '866';
input into AAA from 'd:\temp\00\lg_0106.dbf' format DBASE;
или
input into AAA from 'd:\temp\00\lg_0106.dbf' format FOXPRO;

2. При установке соединения в консоли - нажатие клавиши Ф11, - появляется окно "Коннект", на закладке "Адвансед" в поле "параметры соединения" написал:

charset=cp866

импорт задавал в формате и DBASE, и FOXPRO.


... и всё равно ничего не срабатывает.
...
Рейтинг: 0 / 0
22.02.2006, 14:03
    #33560813
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
У DBISQL можно параметр -CODEPAGE указать. Читайте BOL.
...
Рейтинг: 0 / 0
22.02.2006, 14:11
    #33560840
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
а какой charset у вас в базе?
...
Рейтинг: 0 / 0
22.02.2006, 14:12
    #33560842
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Запускаю с командной строки:

> dbisql.exe -codepage cp866

- в консоли выполняю команду "input into ... from ... format DBASE". Всё равно кодировка не распознаётся
...
Рейтинг: 0 / 0
22.02.2006, 14:16
    #33560856
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Свойства базы:
...
Рейтинг: 0 / 0
22.02.2006, 15:03
    #33561027
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Евгений_СТЗапускаю с командной строки:

> dbisql.exe -codepage cp866

- в консоли выполняю команду "input into ... from ... format DBASE". Всё равно кодировка не распознаётся
Правильно "-codepage 866".
...
Рейтинг: 0 / 0
22.02.2006, 16:02
    #33561231
Кодировка при импорте из ДБФ
И так тоже не получается...
...
Рейтинг: 0 / 0
22.02.2006, 18:41
    #33561679
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
а вы уверены что ваш DBF в досовском формате?
...
Рейтинг: 0 / 0
22.02.2006, 20:20
    #33561824
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Евгений_СТ_И так тоже не получается...
Прости идиота, называется charset=cp866,
т.е. ты должен запустить isql -c "eng=....,..,charset=cp866" и уже в подключенном выполнить вливание данных,
Но еще раз, посмотри кодировку базы куда вливаешь, кодировку файла dbf, ну под чем запускаешь ISQL.
...
Рейтинг: 0 / 0
22.02.2006, 21:04
    #33561863
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Евгений_СТ_И так тоже не получается...
Вообщем у меня работает так:
стоит 9.0.2 на ней база в кодировке cp1251 (DEFAULT collation 1251CYR),
из этой базы через xp_cmdshell запускаю
dbisqlc -c ",,,,charset=cp866" <script.sql>

в котором: input into MDBF from c:\\Parus\doch00.dbf format foxpro,
исходная таблица DBF в кодировке 866 от досовского Паруса,
и все очень хорошо запихивается в таблицу MDBF, сервер стартует только
с ключами -n <имя сервера> -x tcpip дальше базы...
И все отлично работает.
Но с базами от FOXPRO, у которых есть *.dbc, сервак работал только через прокси таблицы, т.е. создавал DSN на *.dbc, говорил что есть прокси сервер на этот DSN, после чего таблицы подключались без проблем
...
Рейтинг: 0 / 0
23.02.2006, 01:36
    #33562074
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Хвала Перуну!!! Наконец-то получилось!!!

Нормально закачивается база, если пользоваться С-консолью:

> dbisqlc.exe -c charset=cp866 <script.sql>

а вот жабовская консоль dbsql.exe с вточности такими же параметрами по-прежнему не желает. Буду разбираться.

Огромное спасибо за подсказку!
...
Рейтинг: 0 / 0
23.02.2006, 13:38
    #33562526
Ggg_old
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Какое-то время назад имел аналогичный геморой. Выкрутился тем, что использовал утилитку командной строки, котарая конвертила кодовую страницу у дбф-ников. Есть еще ГУЕвая утилита, которая тоже умеет конвертить кодовую страницу. Называется dbfnavigator.exe
все наши на www.corba.kubsu.ru
...
Рейтинг: 0 / 0
23.02.2006, 15:36
    #33562718
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Ggg_oldКакое-то время назад имел аналогичный геморой. Выкрутился тем, что использовал утилитку командной строки, котарая конвертила кодовую страницу у дбф-ников. Есть еще ГУЕвая утилита, которая тоже умеет конвертить кодовую страницу. Называется dbfnavigator.exe
все наши на www.corba.kubsu.ru
Я тоже извращался, но поскольку dbf файл нельзя было трогать, то пришлось написать процедуру конвертации текстовых данных из 866 в 1251, в результате сначала качал данные во временную таблицу, затем запускал update, и после вливал куда надо, но это работало медленно, поэтому оформил эту процедуру в dl и обьявил ее как внешную процедуру, скорость возросла раз в 100.
...
Рейтинг: 0 / 0
24.02.2006, 13:47
    #33563738
Евгений_СТ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Получилось выполнить закачку данных ещё одним способом "левой рукой через правое ухо". Сперва ДБФ-ку закачал в Акцесс, а уже акцессовскую таблицу свободно обрабатываю в АСА как прокси-таблицу.

А вот к самому ДБФ-файлу подключиться через прокси почему-то не удалось.
...
Рейтинг: 0 / 0
24.02.2006, 19:46
    #33564208
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Евгений_СТПолучилось выполнить закачку данных ещё одним способом "левой рукой через правое ухо". Сперва ДБФ-ку закачал в Акцесс, а уже акцессовскую таблицу свободно обрабатываю в АСА как прокси-таблицу.

А вот к самому ДБФ-файлу подключиться через прокси почему-то не удалось.
Ну DBF-файл тоже бывает разный,например мемо-поля хранятся в файле с расширением fpt, да и проекты VFP тоже через заднее место подключаются, и между тем, в этом виноват Мелкософт со своей новой версией DAO/ODBC, которая стандартно входит в W2k/XP, а вот в NT4 стоит старая версия и там таких проблем нет. У меня между прочим нормально работать с базой ACCESS тоже нормально не получается, надо кое-что писать в его таблицы, поэтому почему приходиться в процедуре подключать нужную таблицу, ее обновлять, а потом отключать, а если оставить ее постоянно висящей в базе, то код обновления ее не выполняется...
...
Рейтинг: 0 / 0
26.02.2006, 07:34
    #33564999
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Парус по моему на Clipper написан, и хотя формат файла DBF - но в заголовке 29-й байт, который отвечает за кодовую страницу, скорее всего = 0, т.к. Clipper сам на этот байт не обращает ни какого внимания. Это тоже может быть источником проблем при конвертации. Для cp 866 значение 29-го байта заголовка должно быть 0x65.
...
Рейтинг: 0 / 0
27.02.2006, 22:59
    #33569280
sasha27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка при импорте из ДБФ
Я встречался с такой проблеммой.

Выход следующий. Берешь DBFNavigator, откпываешь свой файл, далее
в меню выбираешь DOS->WIN, сохраняешь.

Потом выполняешь свой SQL и все ОК!
...
Рейтинг: 0 / 0
14.03.2006, 08:37
    #33598338
Кодировка при импорте из ДБФ
sasha27Я встречался с такой проблеммой.

Выход следующий. Берешь DBFNavigator, откпываешь свой файл, далее
в меню выбираешь DOS->WIN, сохраняешь.

Потом выполняешь свой SQL и все ОК! А вы не моглибы выложить эту прогу куда-нить... с оф сайта hххp://alxsoft.narod.ru/ 404 выдает.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Кодировка при импорте из ДБФ / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]