Форум » [x]Harbour » Помогите советом начинающему... » Ответить

Помогите советом начинающему...

Urri: Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.

Ответов - 294, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Urri Проблему решил ?

Pasha: Urri пишет: Только вот опять же по тому примеру, что мы обсуждаем. После выполнения команды update street set naim=left(upper(naim),50)] в поле NAIM часть букв русских, часть букв неизвестно каких. Я убрал ненужную конвертацию привыполнении команд sql xHarbour Дима, кстати, у тебя в xHarbour Ads 5.х нормально работает ? Я смотрю, в Harbour были исправления, а какие - не пойму: 2009-04-27 19:17 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/rddads/ads1.c ! fixed very bad bug in code compiled for ADS_LIB_VERSION < 600 in ANSI<->OEM translations - the HVM item value was overloaded with translation results

Dima: Pasha пишет: Дима, кстати, у тебя в xHarbour Ads 5.х нормально работает ? Да все в норме !


Urri: Dima пишет: Проблему решил ? Нет Дима, пока не решил. Никто не подсказал как, а своих знаний пока не хватает. Тут читал здесь твою переписку с Pasha, что у тебя в ADS 5.x работает, но у меня ADS 8.1 и имеются проблемы. Нам редко приходится такой update использовать в реальной жизни, так что уже работаем на Harbour и ждем появления новых проблем. Кто тут с Украины переползал на Harbour, как проблему с украинской i решали? Переделывали кодировку в базах на 1125, или что-то другое придумали? Иначе под 866 приходится для w98 держать две украинские раскладки с такой i укр. как и английской для 866 и 1125 для нормальной i укр. для windows программ?

Pasha: По поводу sql-запросов: я вчера проверил, достаточно убрать конвертацию при выполнении AdsExecuteSqlDirect, и при установке AdsSetCharType( 2, .t. ) команды select/update с литералами в 866-й кодировке отрабатывают нормально. Для xHarbour я изменения сбросил на CVS, для Harbour, я думаю, их тоже перенесут.

Pasha: Виктор уже перенес этот фикс в Harbour По поводу кодировки. Если данные хранятся в кодировке OEM, и необходимо, чтобы украинская i кодировалась отдельным кодом, то прийдется использовать кодировку 1125 вместо 866, хотя она очень уж и нестандартная. В этом случае и перекодировка oem->ansi и наоборот будет выполняться правильно Сейчас в Харборе нет отдельной кодировки для 1125. Я могу ее добавить. Кстати, откуда эта кодировка взялась ? История ее возникновения, насколько она распространена, кто знает ?

Urri: Pasha пишет: Для xHarbour я изменения сбросил на CVS, для Harbour, я думаю, их тоже перенесут. Только xHarbour перелез на Harbour. И что теперь, назад? Попробую, хорошо что у меня все библиотеки и программы работают под Clipper, Harbour и xHarbour из одних исходников: на чем потранслировал и собрал - на том и работают. Подскажи пожалуйста, если брать исправления с CVS, то можно надеяться, что работают русские буквы ("р" в частности, ты мне отдельно присылал свои исправления), исправления в AdsExecuteSqlDirect, которые мне тут уважаемые гуру советовали сделать и прочее, или это нужно будет снова проверять и самостоятельно корректировать? И еще. Такое впечатление, что при открытии баз в ADS из w9x наблюдаются серьезные тормоза (в XP все нормально или малозаметно). Как с этим бороться, а то юзеры ругаются.

Петр: Urri пишет: Только xHarbour перелез на Harbour. И что теперь, назад? Pasha пишет: Виктор уже перенес этот фикс в Harbour

Pasha: Urri пишет: Подскажи пожалуйста, если брать исправления с CVS, то можно надеяться, что работают русские буквы ("р" в частности, ты мне отдельно присылал свои исправления), Нет, этих исправлений нет на CVS. Модуль gtwin.c можно просто брать из прежней сборки исправления в AdsExecuteSqlDirect, которые мне тут уважаемые гуру советовали сделать и прочее, или это нужно будет снова проверять и самостоятельно корректировать? Исправления в ads уже на CVS

Pasha: Urri пишет: Такое впечатление, что при открытии баз в ADS из w9x наблюдаются серьезные тормоза (в XP все нормально или малозаметно). Как с этим бороться, а то юзеры ругаются. Я такого при работе с ads не замечал, клиентские места с w98 есть. А как настроен доступ к ads ? Какой протокол ? Лучше использовать IP

Urri: Pasha пишет: Какой протокол ? Лучше использовать IP Хм... Тут мне писали, что под Harbour' ми стал хорошо работать протокол IPX и от IP можно будет отказаться. Мы на IP работаем с nt машинами, а на w9x под ipx/spx. Еще мы так работаем потому, что прослойка ADSDOSIP занимает в памяти 3.2мб, а на машинах с w9x, на которых по 16мб ОЗУ, это серьезный пожиратель памяти, которая для клиппер программ очень важна. Так что, рекомендуешь попробовать с протоколом IP работать на w9x?

Pasha: Urri пишет: Так что, рекомендуешь попробовать с протоколом IP работать на w9x? Да, и при этом ADSDOSIP не нужен

Urri: А что для этого нужно сделать? В ADSServerType() поставить в качестве параметра 3 ? Так где-то здесь ругали ADS с таким параметром за очень медленную работу...

Dima: Urri пишет: Такое впечатление, что при открытии баз в ADS из w9x наблюдаются серьезные тормоза Попробуй AdsRightsCheck(.F.)

Pasha: Urri пишет: А что для этого нужно сделать? В ADSServerType() поставить в качестве параметра 3 ? Нет, надо убрать на клиенте убрать протокол ipx, и настроить доступ по ip. Программа при этом не изменяется.

Urri: Dima пишет: Попробуй AdsRightsCheck(.F.) Это не помогло для w9x . А вот переход на IP протокол по совету Pasha резко улучшило ситуацию. Все это хорошо с IP. только нам уже адресов перестает хватать уже, а чтобы 150 юзеров перевести на IP - совсем проблема, т.к. системщик с понедельника в отпуске. Ничего, будет ему работенка подсети делать когда приедет. А сейчас пока будем продолжать некоторое время работать с тормозами.

Urri: Pasha пишет: По поводу кодировки. Если данные хранятся в кодировке OEM, и необходимо, чтобы украинская i кодировалась отдельным кодом, то прийдется использовать кодировку 1125 вместо 866, хотя она очень уж и нестандартная. В этом случае и перекодировка oem->ansi и наоборот будет выполняться правильно Сейчас в Харборе нет отдельной кодировки для 1125. Я могу ее добавить. Pasha, может как большой знаток исходников Harbour подскажешь где ковырнуть (похоже что в hb_gt_win_ReadKey), чтобы при вводе на преобразовывало укр. i в код, соответствующий i в 866 кодовой странице? Скажи пожалуйста, а нажатие одновременное CTRL/ALT/2 или CTRL/ALT/P не отрабатывается Harbour? В клиппере такие комбинации срабатывали, а тут вообще никак не реагирует.

Pasha: Urri пишет: где ковырнуть (похоже что в hb_gt_win_ReadKey), чтобы при вводе на преобразовывало укр. i в код, соответствующий i в 866 кодовой странице? В gtwin ничего исправлять не надо. Надо найти плагин к фару с кодовой страницей 1125, установить его. При этом кодовая страница oem в windows заменяется с 866-й на 1125-ю, и украинские буквы правильно вводятся на украинской раскладке в gtwin: Іі - F6, F7, и т.д Перекодировка oem (1125) <-> ansi (1251) также будет выполняться правильно Только надо в программе указать (обновив, естественно, сам харбор): вместо REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) REQUEST HB_CODEPAGE_UA1125 hb_SetCodepage( "UA1125" ) Единственное неудобство: при переустановке windows надо не забывать устанавливать этот плагин.

Pasha: ЗЫ: в Ads то cp1125 нет

Urri: Pasha пишет: ЗЫ: в Ads то cp1125 нет Спасибо, добрая душа... Куда же я со своими 30 Гб рабочих баз и 150 пользователями от ADS денусь?



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