Форум » [x]Harbour » Перевожу Clipper на консольный Харбор » Ответить

Перевожу Clipper на консольный Харбор

MIKHAIL: Добрый день, уважаемое сообщество! Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь. Заранее всем участникам огромное спасибо!

Ответов - 170, стр: 1 2 3 4 5 6 7 8 9 All

MIKHAIL: Dima пишет: Лови его так ADSHANDLE:=AdsConnection() после AdsConnect(cPath) если он вернет TRUE Не получается: ? AdsConnect(cPath) // .T. ADSHANDLE:=AdsConnection() ? AdsIsConnectionAlive(ADSHANDLE) // .F. Чего то ей не хватает. Еще вопрос по AdsMgGetUserNames () Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях. С чем это может быть связано?

Dima: MIKHAIL пишет: ADSHANDLE:=AdsConnection() что вернуло тут ? какой тип подключения (ADS_LOCAL_SERVER , ADS_REMOTE_SERVER, ADS_AIS_SERVER ) ? IPX/SPX , TCP/IP ?

Dima: MIKHAIL пишет: Еще вопрос по AdsMgGetUserNames () Она выдает массив с информацией о пользователях несколько раз об одних и тех-же подключениях. С чем это может быть связано? Возможно отвалилась связь с ADS а коннект живет по умолчанию 120 сек. Или не совсем верно завершаешь программу. В конце вставь перед QUIT AdsDisconnect(ТВОЙ ХЕНДЛ) AdsApplicationExit()

MIKHAIL: Dima пишет: что вернуло тут ? какой тип подключения (ADS_LOCAL_SERVER , ADS_REMOTE_SERVER, ADS_AIS_SERVER ) ? IPX/SPX , TCP/IP ? LINUX TCP/IP ADS_REMOTE_SERVER ? ADSHANDLE:=AdsConnection() // 3966024

Dima: MIKHAIL пишет: LINUX TCP/IP ADS_REMOTE_SERVER с этим зверем не работал с сервером вынь AdsIsConnectionAlive работает нормально попробуй в ADS.INI в секции [SETTINGS] прописать USE_TCP_IP=1

Haz: MIKHAIL пишет: Чего то ей не хватает. версия сервера какая ? [pre2] HB_FUNC( ADSISCONNECTIONALIVE ) /* Determine if passed or default connection is still valid */ { #if ADS_LIB_VERSION >= 800 UNSIGNED16 bConnectionIsAlive = 0; AdsIsConnectionAlive( HB_ADS_PARCONNECTION( 1 ), &bConnectionIsAlive ); hb_retl( bConnectionIsAlive != 0 ); #else hb_retl( HB_FALSE ); #endif } [/pre2]

Dima: Haz пишет: версия сервера какая ? Хороший вопрос

MIKHAIL: Haz пишет: версия сервера какая ? LINUX 10.03

Dima: MIKHAIL пишет: LINUX 10.03 Это версия ADS под LINUX или версия LINUX ?

MIKHAIL: Это версия ADS под LINUX

Dima: MIKHAIL Можно попробовать "покурить" их форум на предмет ADSISCONNECTIONALIVE + LINUX http://devzone.advantagedatabase.com/dz/content.aspx?

Haz: MIKHAIL пишет: LINUX 10.03 а клиентская часть ( DLL на компе пользователя ) тоже версии 10 ? там есть adsver.exe - проверь на всякий случай

MIKHAIL: Haz пишет: а клиентская часть ( DLL на компе пользователя ) тоже версии 10 ? там есть adsver.exe - проверь на всякий случай Эта утилита показывает версию клиентской DLL, ее можно просто в свойствах файла увидеть, версии совпадают 10.0.0.3 ADS 64 и Linux 64 разрядный

Haz: Установи тестовый ADS Server под WIN , хотя бы на своем компе и проверь AdsIsConnectionAlive() там. у меня подключение такое ( сервер под win64 клиент под win32 ) adsConnect60( сDict, nServerType, cUser, cUserPass, 0, @hConnection ) AdsIsConnectionAlive(hConnection) дает .T.

Dima: Haz пишет: adsConnect60( сDict, nServerType, cUser, cUserPass, 0, @hConnection ) AdsIsConnectionAlive(hConnection) дает .T. Не запутывай человека словарями . При обычном коннекте у меня тоже работает AdsIsConnectionAlive.

MIKHAIL: А нужно какие значения прописывать для сDict, nServerType, cUser, cUserPass, hConnection ?

Haz: Dima пишет: Не запутывай я как пример привел, и в мыслях не было путать ))) MIKHAIL пишет: версию клиентской DLL, ее можно просто в свойствах файла увидеть возможно и так , не проверял. А по чеснаку она в текстовом виде в файле сразу после строки EsIAx!@# которую ADS использует как заголовок регистрационной информации.

Dima: MIKHAIL Ставь вот эту версию _http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=16&Product=25&Platform=10 (последнюю 10.x) Там столько багов устранено по сравнению 10.03 в том числе и с индексами.

Haz: MIKHAIL пишет: А нужно какие значения прописывать для сDict, nServerType, cUser, cUserPass, hConnection ? это параметры конекта к словарю данных , пример тута https://github.com/harbour/core/blob/master/contrib/rddads/tests/datad.prg Дима посоветовал проще , без словаря обычным AdsConnect( в путь)

MIKHAIL: Попробовал по разному, под WIN32XP и ServerR8 64 на ADS 10.10 и ADS 9.10 и Linux 64 ADS64 10.10, везде функция выдает .F. Причем соединение с сервером устанавливается даже по AdsIsServerLoaded(), поэтому у меня были множественные соединения из одной программы.



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