On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 46 , стр: 1 2 3 All [только новые]


Администратор




Пост N: 979
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 12:27. Заголовок: попробуй rddsetdefau..


попробуй
rddsetdefault("ADSCDX")


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 908
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.09.08 12:45. Заголовок: Pasha пишет: попроб..


Pasha пишет:

 цитата:
попробуй
rddsetdefault("ADSCDX")


Результат тот же
Возможно это в принципе не должно работать ?
Ведь клиентская часть ads 8.0 а на серваке ADS 5.6..........

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 980
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 12:52. Заголовок: Я на версии не обрат..


Я на версии не обратил внимание
Может и не будет работать, 5.6 все-таки очень старая версия
Но можно ведь собрать rddads со старой ace

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 909
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.09.08 12:55. Заголовок: Pasha пишет: Но мож..


Pasha пишет:

 цитата:
Но можно ведь собрать rddads со старой ace


у меня нет ее к сожалению :(((((
где взять ?
там ведь нужны будут и соответсвующие dll

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 981
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 13:28. Заголовок: Покопался в закромах..


Покопался в закромах... нашел ace55
Куда отправить ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 982
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 13:37. Заголовок: Ушло Возможно, при с..


Ушло
Возможно, при сборке программы с rddads.lib и ace32.lib будут нереализованные ссылки на функции в более поздних версиях ace
Из rddads надо будет просто убрать лишние функции, и пересобрать rddads

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 911
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.09.08 13:42. Заголовок: Спасибо получил !!! ..


Спасибо получил !!!
Вот только ace.h там нет.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 983
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 13:52. Заголовок: Нашел ace.h в каком-..


Нашел ace.h в каком-то архиве харбора за 2002-й год
Отправил

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 912
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.09.08 13:58. Заголовок: Спасибо !!!!!!!!!!!!..


Спасибо !!!!!!!!!!!!!!!!!!!!!
Потом отпишусь как все получилось !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 913
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.09.08 14:23. Заголовок: Все супер !!! ;) Одн..


Все супер !!! ;)
Одна не задача. Таблица в OEM и все что по русски кажет крякозяблы.
Эта штука не сработала AdsSetCharType(2, .T.)


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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(), ее нет ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 985
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.09.08 16:26. Заголовок: Впрочем, есть еще ва..


Впрочем, есть еще вариант
Вместо вызова функций AdsGetFieldRaw вызывать AdsGetField, и затем
перекодировку ansi->Oem. Вместо вызова AdsSetFieldRaw - перекодировку
oem->ansi, и затем вызов AdsSetString
Побочный эффект: если в строковых полях хранятся двоичные данные,
в результате двойной перекодировки oem->ansi->oem они могут быть покоцаны


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 на сборку , странно но ни одной ошибки не возникло.
При сборке приложения тоже нет ошибок а ведь были........

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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, поскольку ему
сказали, что БД в этой кодировке

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 33
Зарегистрирован: 19.12.06
ссылка на сообщение  Отправлено: 30.09.08 22:08. Заголовок: а почему бы не испол..


а почему бы не использовать более свежую версию адс -7.0 например. Я ее в осле нашел - прекрасно работает, использую для тестов, правда у меня новель 5.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 916
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 07:37. Заголовок: Есть у кого то ADS ..


Есть у кого то ADS версии старше чем 5.7 который можно пролечить для netware 4.11 ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 917
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 07:48. Заголовок: Pasha пишет: Чтобы ..


Pasha пишет:

 цитата:
Чтобы ace не перекодировал данные oem->ansi, можно указать ему
CharType ADS_ANSI


Подробнее можно , где конкретно править ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 988
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:29. Заголовок: Dima пишет: Подробн..


Dima пишет:

 цитата:
Подробнее можно , где конкретно править ?



Указать CharType ADS_ANSI - это и есть AdsSetCharType(1)

А 2-й параметр в AdsSetCharType не отрабатыватся, т.к. нет функций
AdsGetFieldRaw

Дима, ты хранишь в символьных полях двоичные данные ? Если нет,
подойдет 2-й способ с двойной перекодировкой. Напиши, если не хранишь, и тогда я добавлю в rddads эти фрагменты для старой версии ace

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 918
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:31. Заголовок: Pasha пишет: Дима, ..


Pasha пишет:

 цитата:
Дима, ты хранишь в символьных полях двоичные данные ? Если нет,
подойдет 2-й способ с двойной перекодировкой


Нет двоичные данные не храню !
Счас пробну 2-й способ , спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 919
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:36. Заголовок: Открываю таблицу с и..


Открываю таблицу с индексом по символьному полю в котором есть кирилица (уже существующая база
созданная Clipper + ADS 5.6 netware 4.11)
Ставлю AdsSetCharType(2)
Сортирует нормально и браузер ездит нормально НО крякозяблы
Ставлю AdsSetCharType(1)
Появилась кирилица , но езда по браузеру не корректна

Замкнутый круг , блин :(

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 920
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:43. Заголовок: Pasha пишет: Ты бер..


Pasha пишет:

 цитата:
Ты берешь xHb с CVS ?


Думаю да , хотя вчера в 12 ночи CVS запросил пароль , ну как сейчас пробну.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 921
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:45. Заголовок: О сейчас работает ;)..


О сейчас работает ;)
Хотя быстрее будет adsfunc.c выслать на пойту или указать тут что и где правильно править.
Спасибо !!!!!

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 990
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:52. Заголовок: Лучше пришли мне сво..


Лучше пришли мне свои сырцы rddads, у меня не последние, и я в них сделаю правки

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 923
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 08:55. Заголовок: Pasha пишет: Лучше ..


Pasha пишет:

 цитата:
Лучше пришли мне свои сырцы rddads


Выслал !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 991
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 09:23. Заголовок: Сделал Дима, пробуй ..


Сделал
Дима, пробуй AdsSetCharType(2, .t.)


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 924
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 10:41. Заголовок: Pasha пишет: Сделал..


Pasha пишет:

 цитата:
Сделал
Дима, пробуй AdsSetCharType(2, .t.)


Сделал , крякозяблы :(

ps
ads пересобрал

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 992
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:10. Заголовок: поправил, попробуй т..


поправил, попробуй теперь



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 925
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:15. Заголовок: Pasha пишет: поправ..


Pasha пишет:

 цитата:
поправил, попробуй теперь


Вот теперь в ДЕСЯТКУ !!!!!!!!!!
СПАСИБО !!!!!!


Подводные камни могут быть ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 993
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:23. Заголовок: Только если в поле х..


Только если в поле хранятся двоичные данные, и перекодировка
oem->ansi->oem даст значение, отличное от исходного

Проверь еще scope, filter
Должно работать

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 926
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:24. Заголовок: Проверил пока что db..


Проверил пока что dbseek , не пашет однако.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 994
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:25. Заголовок: scope, filter с русс..


scope, filter с русскими строковыми константами


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 995
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:27. Заголовок: Dima пишет: Провери..


Dima пишет:

 цитата:
Проверил пока что dbseek , не пашет однако.



Ага, значит и тип ADS_RAWKEY не поддерживается
Надо еще перекодировать ключ для Seek
Сделаю

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 927
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:29. Заголовок: Pasha пишет: scope,..


Pasha пишет:

 цитата:
scope, filter с русскими строковыми константами


у меня исключены такие фильтры , все на English.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 928
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 11:33. Заголовок: Проверил фильтр. Раб..


Проверил фильтр.
Работает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 929
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.10.08 12:30. Заголовок: Проверил изменения п..


Проверил изменения по seek , работает.
Ответ в мыле.
Спасибо за отличную и нужную работу !!!!!!!!

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 969
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 07:23. Заголовок: Pasha Режим Multi T..


Pasha
Режим Multi Thread + ADS , собираем и получаем ошибку
Unresolved External _hb_stackST
Как лечить ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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$@ $**


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 971
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 09:04. Заголовок: Пересобрал , результ..


Пересобрал , результат тот же....

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1004
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.08 16:05. Заголовок: Скорее всего, кроме ..


Скорее всего, кроме rddads.lib, в сборке есть еще какая-то ST-библиотека. Откуда идет ссылка на _hb_stackST ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 975
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.10.08 16:37. Заголовок: RDDADS.LIB|ADSF..


RDDADS.LIB|ADSFUNC

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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 ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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-файлах, она ведь где-то есть, раз сборка не получается

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 981
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.10.08 13:09. Заголовок: Pasha Почему бы не ..


Pasha
Почему бы не сделать сборку всех библиотек более цивилизованно как в обычном так и в mt режиме.
Ведь часть библиотек создается как в обычном режиме так и mt на автомате.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 46 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 33
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет