Автор | Сообщение |
|
| |
Пост N: 907
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 11:56. Заголовок: ADS Remote , как подключится ?
Имеем Novell Netware 4.11 (IPX) на нем работает ADS 5.6 Имеем свеже собранные библиотеки ADS 8.0 Как подключится к базам посредством ADS ? #include "ads.ch" #include "ord.ch" #include "set.ch" PROCEDURE Main REQUEST ADS AdsSetServerType(2) rddRegister("ADS",1) rddsetdefault("ADS") AdsRightsCheck(.F.) AdsSetFileType(ADS_CDX) hb_SetCodepage("RU866") REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") AdsSetCharType(2, .T.) use o:\sklad\dbf\nomen index o:\sklad\dbf\nomen3 shared new // просто зависает прога close all return
|
|
|
Ответов - 46
, стр:
1
2
3
All
[только новые]
|
|
|
| Администратор
|
Пост N: 979
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 12:27. Заголовок: попробуй rddsetdefau..
попробуй rddsetdefault("ADSCDX")
|
|
|
|
| |
Пост N: 908
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 12:45. Заголовок: Pasha пишет: попроб..
Pasha пишет: цитата: | попробуй rddsetdefault("ADSCDX") |
| Результат тот же Возможно это в принципе не должно работать ? Ведь клиентская часть ads 8.0 а на серваке ADS 5.6..........
|
|
|
|
| Администратор
|
Пост N: 980
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 12:52. Заголовок: Я на версии не обрат..
Я на версии не обратил внимание Может и не будет работать, 5.6 все-таки очень старая версия Но можно ведь собрать rddads со старой ace
|
|
|
|
| |
Пост N: 909
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 12:55. Заголовок: Pasha пишет: Но мож..
Pasha пишет: цитата: | Но можно ведь собрать rddads со старой ace |
| у меня нет ее к сожалению :((((( где взять ? там ведь нужны будут и соответсвующие dll
|
|
|
|
| Администратор
|
Пост N: 981
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 13:28. Заголовок: Покопался в закромах..
Покопался в закромах... нашел ace55 Куда отправить ?
|
|
|
|
| Администратор
|
Пост N: 982
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 13:37. Заголовок: Ушло Возможно, при с..
Ушло Возможно, при сборке программы с rddads.lib и ace32.lib будут нереализованные ссылки на функции в более поздних версиях ace Из rddads надо будет просто убрать лишние функции, и пересобрать rddads
|
|
|
|
| |
Пост N: 911
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 13:42. Заголовок: Спасибо получил !!! ..
Спасибо получил !!! Вот только ace.h там нет.
|
|
|
|
| Администратор
|
Пост N: 983
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 13:52. Заголовок: Нашел ace.h в каком-..
Нашел ace.h в каком-то архиве харбора за 2002-й год Отправил
|
|
|
|
| |
Пост N: 912
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 13:58. Заголовок: Спасибо !!!!!!!!!!!!..
Спасибо !!!!!!!!!!!!!!!!!!!!! Потом отпишусь как все получилось !
|
|
|
|
| |
Пост N: 913
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 14:23. Заголовок: Все супер !!! ;) Одн..
Все супер !!! ;) Одна не задача. Таблица в OEM и все что по русски кажет крякозяблы. Эта штука не сработала AdsSetCharType(2, .T.)
|
|
|
|
| Администратор
|
Пост N: 984
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 16:12. Заголовок: Тут вот такое дело Е..
Тут вот такое дело Если таблица хранится в OEM, и указан CharType ADS_OEM, ace32 считает, что поскольку клиент - gui-приложение, и автоматически перекодирует данные в ANSI. На 32-разрядных консольных клиентов ace не расчитан. Поэтому используется такой фокус: данные считываются функцией AdsGetFieldRaw, которая данные не перекодирует, и клиент получает в нужной кодировке (OEM). Но в Ace 5.5 функции AdsGetFieldRaw еще нет ! Тебе наверное пришлось прибить ее вызов в rddads Чтобы ace не перекодировал данные oem->ansi, можно указать ему CharType ADS_ANSI. При этом, поскольку исходнае и результирующая кодировка одинаковые, перекодировки не будет, и, так как данные в кодировке oem, клиент их и получит в oem Побочный неприятный эффект - неправильная работа Upper/Lower на сервере: в индексных выражениях и серверных фильтрах Поэтому, выход - использовать более свежую версию ads Проверь функцию AdsGetFieldRaw(), ее нет ?
|
|
|
|
|
| Администратор
|
Пост N: 985
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 16:26. Заголовок: Впрочем, есть еще ва..
Впрочем, есть еще вариант Вместо вызова функций AdsGetFieldRaw вызывать AdsGetField, и затем перекодировку ansi->Oem. Вместо вызова AdsSetFieldRaw - перекодировку oem->ansi, и затем вызов AdsSetString Побочный эффект: если в строковых полях хранятся двоичные данные, в результате двойной перекодировки oem->ansi->oem они могут быть покоцаны
|
|
|
|
| |
Пост N: 914
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 18:04. Заголовок: Pasha Чудеса конечн..
Pasha Чудеса конечно.......но поставив SET CHARTYPE TO ANSI , все встало на свом места. Но есть подозрения......... Как убедится что ads собрался верно с учетом изменений ? Удалил все rddads.lib б ads32.lib , все obj которые касаются ads , вернул назад исходники ads и запустил ads на сборку , странно но ни одной ошибки не возникло. При сборке приложения тоже нет ошибок а ведь были........
|
|
|
|
| Администратор
|
Пост N: 986
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.09.08 20:33. Заголовок: Так rddads собрался ..
Так rddads собрался без всяких правок в сырцах со старым ace.h ? И при линковке нет unresolved external ? Dima пишет: цитата: | Чудеса конечно.......но поставив SET CHARTYPE TO ANSI , все встало на свом места. |
| Внешне все нормально, но это только внешне. Ace считает, что БД в кодировке Ansi, клиенту (rddads) надо дать данные в ansi, и перекодировка не выполняется. А поскольку БД в кодировке oem, клиент ее и получает без перекодировки в oem. Но ! Upper/lower ads выполняет по правилам ansi-cp1251, поскольку ему сказали, что БД в этой кодировке
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 19.12.06
|
|
Отправлено: 30.09.08 22:08. Заголовок: а почему бы не испол..
а почему бы не использовать более свежую версию адс -7.0 например. Я ее в осле нашел - прекрасно работает, использую для тестов, правда у меня новель 5.
|
|
|
|
| |
Пост N: 915
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.08 23:42. Заголовок: Pasha пишет: И при ..
Pasha пишет: цитата: | И при линковке нет unresolved external ? |
| Вообщем все убил и сделал снова (ни чего не удаляя из сырцов) Просто в сырцах в нужных местах добавил #define ADS_LIB_VERSION 500 А вот с кодировкой точно лажа особенно в индексах. Пока оставил так AdsSetCharType(1, .T.) Завтра буду еще чекать. База открывается быстро как в Clipper ;) PS Одно не ясно , как же раньше на заре появления ads 5.5 юзали базы в кодировке OEM ?
|
|
|
|
| |
Пост N: 916
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 07:37. Заголовок: Есть у кого то ADS ..
Есть у кого то ADS версии старше чем 5.7 который можно пролечить для netware 4.11 ?
|
|
|
|
| |
Пост N: 917
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 07:48. Заголовок: Pasha пишет: Чтобы ..
Pasha пишет: цитата: | Чтобы ace не перекодировал данные oem->ansi, можно указать ему CharType ADS_ANSI |
| Подробнее можно , где конкретно править ?
|
|
|
|
| Администратор
|
Пост N: 988
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 08:29. Заголовок: Dima пишет: Подробн..
Dima пишет: цитата: | Подробнее можно , где конкретно править ? |
| Указать CharType ADS_ANSI - это и есть AdsSetCharType(1) А 2-й параметр в AdsSetCharType не отрабатыватся, т.к. нет функций AdsGetFieldRaw Дима, ты хранишь в символьных полях двоичные данные ? Если нет, подойдет 2-й способ с двойной перекодировкой. Напиши, если не хранишь, и тогда я добавлю в rddads эти фрагменты для старой версии ace
|
|
|
|
| |
Пост N: 918
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:31. Заголовок: Pasha пишет: Дима, ..
Pasha пишет: цитата: | Дима, ты хранишь в символьных полях двоичные данные ? Если нет, подойдет 2-й способ с двойной перекодировкой |
| Нет двоичные данные не храню ! Счас пробну 2-й способ , спасибо !
|
|
|
|
| |
Пост N: 919
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:36. Заголовок: Открываю таблицу с и..
Открываю таблицу с индексом по символьному полю в котором есть кирилица (уже существующая база созданная Clipper + ADS 5.6 netware 4.11) Ставлю AdsSetCharType(2) Сортирует нормально и браузер ездит нормально НО крякозяблы Ставлю AdsSetCharType(1) Появилась кирилица , но езда по браузеру не корректна Замкнутый круг , блин :(
|
|
|
|
|
| Администратор
|
Пост N: 989
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 08:40. Заголовок: Dima пишет: Одно не..
Dima пишет: цитата: | Одно не ясно , как же раньше на заре появления ads 5.5 юзали базы в кодировке OEM ? |
| Во времена ads 5.5 были только gui-клиенты ads. Проблема возникла с появлением Alaska xBase++, тогда и добавили эти функции в ads И в харборе вопрос решался таким же способом, как в xBase Дима, для в-го способа я поправлю adsfunc.c, и вышлю тебе Ты берешь xHb с CVS ?
|
|
|
|
| |
Пост N: 920
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:43. Заголовок: Pasha пишет: Ты бер..
Pasha пишет: Думаю да , хотя вчера в 12 ночи CVS запросил пароль , ну как сейчас пробну.
|
|
|
|
| |
Пост N: 921
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:45. Заголовок: О сейчас работает ;)..
О сейчас работает ;) Хотя быстрее будет adsfunc.c выслать на пойту или указать тут что и где правильно править. Спасибо !!!!!
|
|
|
|
| Администратор
|
Пост N: 990
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 08:52. Заголовок: Лучше пришли мне сво..
Лучше пришли мне свои сырцы rddads, у меня не последние, и я в них сделаю правки
|
|
|
|
| |
Пост N: 922
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:52. Заголовок: Кстати в 4 файлах я ..
Кстати в 4 файлах я добавлял строку #define ADS_LIB_VERSION 500 ads1.c adsfunc.c adsmgmnt.c adsexternal.ch
|
|
|
|
| |
Пост N: 923
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 08:55. Заголовок: Pasha пишет: Лучше ..
Pasha пишет: цитата: | Лучше пришли мне свои сырцы rddads |
| Выслал !
|
|
|
|
| Администратор
|
Пост N: 991
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 09:23. Заголовок: Сделал Дима, пробуй ..
Сделал Дима, пробуй AdsSetCharType(2, .t.)
|
|
|
|
| |
Пост N: 924
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 10:41. Заголовок: Pasha пишет: Сделал..
Pasha пишет: цитата: | Сделал Дима, пробуй AdsSetCharType(2, .t.) |
| Сделал , крякозяблы :( ps ads пересобрал
|
|
|
|
| Администратор
|
Пост N: 992
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 11:10. Заголовок: поправил, попробуй т..
поправил, попробуй теперь
|
|
|
|
| |
Пост N: 925
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 11:15. Заголовок: Pasha пишет: поправ..
Pasha пишет: цитата: | поправил, попробуй теперь |
| Вот теперь в ДЕСЯТКУ !!!!!!!!!! СПАСИБО !!!!!! Подводные камни могут быть ?
|
|
|
|
|
| Администратор
|
Пост N: 993
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 11:23. Заголовок: Только если в поле х..
Только если в поле хранятся двоичные данные, и перекодировка oem->ansi->oem даст значение, отличное от исходного Проверь еще scope, filter Должно работать
|
|
|
|
| |
Пост N: 926
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 11:24. Заголовок: Проверил пока что db..
Проверил пока что dbseek , не пашет однако.
|
|
|
|
| Администратор
|
Пост N: 994
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 11:25. Заголовок: scope, filter с русс..
scope, filter с русскими строковыми константами
|
|
|
|
| Администратор
|
Пост N: 995
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.10.08 11:27. Заголовок: Dima пишет: Провери..
Dima пишет: цитата: | Проверил пока что dbseek , не пашет однако. |
| Ага, значит и тип ADS_RAWKEY не поддерживается Надо еще перекодировать ключ для Seek Сделаю
|
|
|
|
| |
Пост N: 927
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 11:29. Заголовок: Pasha пишет: scope,..
Pasha пишет: цитата: | scope, filter с русскими строковыми константами |
| у меня исключены такие фильтры , все на English.
|
|
|
|
| |
Пост N: 928
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 11:33. Заголовок: Проверил фильтр. Раб..
Проверил фильтр. Работает.
|
|
|
|
| |
Пост N: 929
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.10.08 12:30. Заголовок: Проверил изменения п..
Проверил изменения по seek , работает. Ответ в мыле. Спасибо за отличную и нужную работу !!!!!!!!
|
|
|
|
| |
Пост N: 969
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.08 07:23. Заголовок: Pasha Режим Multi T..
Pasha Режим Multi Thread + ADS , собираем и получаем ошибку Unresolved External _hb_stackST Как лечить ?
|
|
|
|
| Администратор
|
Пост N: 1000
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.10.08 08:30. Заголовок: rddads.lib собираетс..
rddads.lib собирается в st режиме для сборки в режиме mt надо в rdd_ads\makefile.bc заменить строку bcc32 $(CLIBFLAGS) $(C_USR) $(CFLAGS) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $** на bcc32 $(CLIBFLAGS) $(C_USR) $(CFLAGS) -tWM -DHB_THREAD_SUPPORT -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $**
|
|
|
|
| |
Пост N: 971
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.08 09:04. Заголовок: Пересобрал , результ..
Пересобрал , результат тот же....
|
|
|
|
|
| Администратор
|
Пост N: 1004
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.10.08 16:05. Заголовок: Скорее всего, кроме ..
Скорее всего, кроме rddads.lib, в сборке есть еще какая-то ST-библиотека. Откуда идет ссылка на _hb_stackST ?
|
|
|
|
| |
Пост N: 975
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.08 16:37. Заголовок: RDDADS.LIB|ADSF..
RDDADS.LIB|ADSFUNC
|
|
|
|
| |
Пост N: 978
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.10.08 19:21. Заголовок: Pasha пишет: rddads..
Pasha пишет: цитата: | rddads.lib собирается в st режиме для сборки в режиме mt надо в rdd_ads\makefile.bc заменить строку bcc32 $(CLIBFLAGS) $(C_USR) $(CFLAGS) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $** на bcc32 $(CLIBFLAGS) $(C_USR) $(CFLAGS) -tWM -DHB_THREAD_SUPPORT -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $** |
| ты пробовал собрать так и затем собрать какое то приложение под ADS ?
|
|
|
|
| Администратор
|
Пост N: 1005
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.10.08 11:06. Заголовок: Непонятно. В adsfunc..
Непонятно. В adsfunc нет ссылки на hb_stack. Если посмотреть adsfunc.obj, тоже не видно hb_stackST/MT. Т.е., rddads.lib должна работать как с mt, так и с st сборкой, указывать флаги tWM -DHB_THREAD_SUPPORT необязательно цитата: | ты пробовал собрать так и затем собрать какое то приложение под ADS ? |
| У меня сборка идет немного по-другому, но все собирается и работает Я собираю harbour.dll в mt режиме, и отдельно hbads.dll без указания флагов mt-сборки. Если бы была ссылка на hb_stackST, ничего бы не собралось Дима, поищи ссылку на hb_stackST в obj-файлах, она ведь где-то есть, раз сборка не получается
|
|
|
|
| |
Пост N: 981
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.10.08 13:09. Заголовок: Pasha Почему бы не ..
Pasha Почему бы не сделать сборку всех библиотек более цивилизованно как в обычном так и в mt режиме. Ведь часть библиотек создается как в обычном режиме так и mt на автомате.
|
|
|
Ответов - 46
, стр:
1
2
3
All
[только новые]
|
|