Форум » [x]Harbour » Как прицепится к ADS по сети ? » Ответить
Как прицепится к ADS по сети ?
Dima: Есть ADS 10.10 в настройках у него стоит порт 6262 Вот таким исходником пытаюсь к нему подрубиться. [pre2] #include "ads.ch" proc main REQUEST ADS rddSetDefault( "ADSCDX" ) SET SERVER REMOTE SET CHARTYPE TO OEM ? AdsConnect("MYSERVER") // .f. ? AdsConnect("//127.0.0.1/:6262") // .f. return [/pre2] ADS.INI в папке с прогой [pre2] [MYSERVER] LAN_IP=127.0.0.1 LAN_PORT=6262 [/pre2] Где мой косяк ?
Dima: а если с индексами ? при чем у меня IDX
Haz: Dima пишет: а если с индексами ? при чем у меня IDX не важно CDX IDX - сервер цепляет автоматом попробуй в одном месте ( вместо одного USe )
Dima: Haz пишет: замени все USE cTable ALIAS cAlias на DOSQL( cAlias, "SELECT * FROM " + cTable ) и все решиться само ))) что то слишком уж ты упростил ситуацию. Надо же еще и словари создать и базы туда сунуть , перед DOSQL
Dima: Haz пишет: не важно CDX IDX - сервер цепляет автоматом откуда ему знать какие индексы IDX я юзаю с той или иной базой ? )))
Haz: Dima пишет: Надо же еще и словари создать и базы туда сунуть в arc32 делов на 1 минуту ровно - создать один словарь и одним кликом добавить все dbf
Dima: Haz пишет: попробуй в одном месте ( вместо одного USe ) Допустим было USE Volvo index Volvo1,Volvo2,Volvo,test55 shared new откуда DOSQL поймет что надо прицепить еще и все эти индексы ?
Haz: Dima пишет: откуда ему знать какие индексы IDX я юзаю с той или иной базой ? ))) можно указать при добавлении таблицы в словарь IDX - поддерживается точно, но в тут удобнее CDX а еще удобнее ADI кстати скорее всего SET INDEX TO будет работать тоже
Dima: я понял. но не все сразу и возможно приду к этому ;) у тебя ADS 10.1 ?
Haz: Dima пишет: у тебя ADS 10.1 ? 10.10.0.28
Dima: Haz пишет: 10.10.0.28 Ну в смысле да. А на 11.1 нет "гены" ?
Haz: Dima пишет: нет "гены" ? поискал , не нашел , да вроде и 10 всем пока устраивает
Dima: Haz Попробую описать ситуацию на пальцах Так как я не держу все время базы открытыми а открываю и потом закрываю по мере необходимости то у меня получаются не закрытые коннекты на сервере. При чем при каждом adsConnect60 появлется новый. [pre2] базы уже открыты for i=1 to 10 adsConnect60 DOSQL browse() close adssql ......... AdsDisconnect(tmphh) // по идее отрубаюсь от adsConnect60 AdsConnect(ip_port) adshandle:=AdsConnection() next [/pre2]
Haz: Dima пишет: AdsDisconnect(tmphh) // по идее отрубаюсь от adsConnect60 У меня при старте AdsConnect а при выходе Disconnect и все работает. Делай так же а базы закрывай и открывай когда угодно.
Dima: а у меня выходит 2 ads конекта один обычный AdsConnect а другой AdsConnect60
Haz: Dima пишет: а у меня выходит 2 ads конекта один обычный AdsConnect а другой AdsConnect60 так и оставь их при входе, на выход - дисконнест а между ними любое число USE или DOSQL.
Dima: примерно так и сделал но при каждом вызове adsConnect60 растет и не уменьшается в ADS configuration utility число connections как сказать adsConnect60 что бы он использовал уже текущее подключение (хендл)
Haz: Dima пишет: при каждом вызове adsConnect60 делай всего один вызов, не пойму зачем туда сюда дергать базы уже открыты adsConnect60 for i=1 to 10 DOSQL browse() close adssql ......... next AdsDisconnect(tmphh) // по идее отрубаюсь от adsConnect60
Dima: с одним вызовом adsConnect60 не получается. Захожу в проге в меню и выбираю Каталог запчастей и его смотрю , конект к базам уже есть через adsConnect и объявлен в самом начале программы. Затем мне понадобилось установить SQL фильтр и тогда я подключаюсь к словарю через adsConnect60 и так каждый раз когда нужно установить тот или иной фильтр
Haz: Dima пишет: с одним вызовом adsConnect60 не получается 1 Запихни все dbf в словарь при помощи arc32 2 в начале программы только AdsConnect60 ( без простого AdsConnect ) 3 USE будет нормально открывать базы через словарь так обойдешься всего одним хендлом
Dima: Haz пишет: 1 Запихни все dbf в словарь при помощи arc32 2 в начале программы только AdsConnect60 ( без простого AdsConnect ) 3 USE будет нормально открывать базы через словарь так обойдешься всего одним хендлом В будущем так и сделаю. А выход кажется придумал что бы по 100 не дергать AdsConnect60. Заведу статик переменную да и всех делов и код будет выполнятся только раз
полная версия страницы