Форум » [x]Harbour » xHarbour и SyBase » Ответить

xHarbour и SyBase

Oskar_AAA: Добрый день, давно не был у нас на форуме. Поставлена задача: выбрать данные из нескольких таблиц Sybase и записать их в DBF файлы. Есть исходный текст макроса на Excel, который выбирает данные, но поменялась структура таблиц, их наименование и взаимосвязи между ними... Описание полей и таблиц Sybase есть. Хотелось бы создать модуль в программе на xHarobour и выбирать из таблиц Sybase данные... С чего начать и Как это сделать ? Спасибо.

Ответов - 53, стр: 1 2 3 All

Oskar_AAA: xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476)

Haz: Oskar_AAA пишет: База DBF уже создана из SYBASE посредством выбора данных по условию и экспортирована в формате DBF. П База в харбуре нормально открывается и читабельна ?

Oskar_AAA: HAZ, спасибо за внимание. База создана из SYBASE и спокойно читается в xHarbour, проблема только с символьными полями В SYBASE есть возможность экспорта результата выборки в различные форматы (Xls, Txt. Dbf...) при экспорте в Xls символьные поля тоже с "кракозябрами".... формат XLS не подходит по причине ограничения на 65535 строк.


Haz: Oskar_AAA пишет: проблема только с символьными полями Если при текстовом просмотре и выборе UTF содержимое видно правильно, то перекодировку можно написать на Fopen() - FWrite() Формат DBF известен , читаем блоками и пишем туда же

Haz: Oskar_AAA пишет: (Xls, Txt. Dbf...) Текстовой кстати легче преобразовать будет. Тхт - кстати открывается Excel без крякозябров , а в последних версиях Excel нет ограничения на 64К срок

SergKis: Oskar_AAA попробуйте посмотреть dbf в harbour (можно взять от MiniGui, если нет hb 3.2 у вас) REQUEST HB_CODEPAGE_UTF8EX HB_SetCodePage( "UTF8EX" ) RDDSetDefault('DBFCDX') Use UTF8 Alias UTF Exclusive NEW browse() или HB_SetCodePage( "RU866" ) USE UTF8 ALIAS INP VIA 'DBFCDX' NEW CODEPAGE 'UTF8EX' browse() что то похожее пробовал давно с dbf в utf8 кодировке, но только средствами hb - получалось ok

Oskar_AAA: Друзья, все таки нужен DBF, с ним потом нужно работать... Почему не работает функция Hb_Utf8ToStr(Name,"RU866")???

Dima: Oskar_AAA пишет: Почему не работает функция Hb_Utf8ToStr(Name,"RU866")??? возможно ей нужен вызов REQUEST HB_CODEPAGE_UTF8EX , в Xharbour 1.2.3 ни чего такого не нашел (может искал плохо). Если это разовая операция я бы двигался в сторону которую предложил SergKis

SergKis: Oskar_AAA пишет:Почему не работает функция Hb_Utf8ToStr(Name,"RU866") Вы уверены, что в поле данные в utf8 ?

Haz: Oskar_AAA пишет: Почему не работает функция Hb_Utf8ToStr(Name,"RU866")??? попробуй hb_Translate( cStr, "UTF8", "RU1251" ), использовал ее когда то

Oskar_AAA: SergKis при *REQUEST HB_CODEPAGE_UTF8EX Error: Unresolved external '_HB_FUN_HB_CODEPAGE_UTF8EX' такой код проходит, HB_CDPSelect("UTF8") HB_SetCodePage( "RU866" ) USE UTF8 ALIAS INP VIA 'DBFCDX' NEW CODEPAGE 'UTF8EX' browse() Но, результат - крякозябры

SergKis: Oskar_AAA возможно надо USE UTF8 ALIAS INP VIA 'DBFCDX' NEW CODEPAGE 'UTF8' xHb в руках не держал и в нем не разбираюсь но возможно перекодировку dbf из SyBase сделать на hb (режим export\import присутсвует по любому), а работать с dbf 866 xHb

Oskar_AAA: попробовал - тоже самое... Есть алгоритм пересчета кодов UTF8 в RU866 ? /может написать самому блок кода по пересчету кодов старше 127.../

Oskar_AAA: Haz попробуй hb_Translate( cStr, "UTF8", "RU1251" ), использовал ее когда то не прошло, крякозябры... может что-то надо подключить из LIB, CH? # Include 'Achoice.Ch' # Include 'Inkey.Ch' # Include 'Directry.Ch' # Include 'Setcurs.Ch' # Include 'Dbstruct.Ch' # Include 'Command.Ch' # Include 'Dbedit.Ch' # Include 'Excel.Ch' # Include 'Hbgtinfo.Ch'

Dima: Oskar_AAA Какую кодировку показывает Dbedit из темы ? http://clipper.borda.ru/?1-4-0-00001125-000-0-0-1463462933

Oskar_AAA: Dima, DBEDIT из темы нет... но при выгрузке из SYBASE в TXT файл, FAR правильно показывает в OEM кодировке, в ANSI крякозябры...

Oskar_AAA: DIMA. скачал DBEDIT - показывает верно (F3)!!! Что делать дальше,,,?

Oskar_AAA: Кодировка 1251 - ОК, 866 - крякозябры

Dima: я уже что то совсем потерялся в плане чего нужно сделать если честно все смешалось в кучу RU866 , UTF8 , CP1251. какова исходная задача то ?

Haz: Oskar_AAA пишет: Кодировка 1251 - ОК и причем тут UTF ?



полная версия страницы