Форум » [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] Где мой косяк ?

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

Haz: Haz пишет: А каким образом я могу устроить SEEK по этой базе #TmpBase. Как то можно создать такой же временный индекс в памяти ? временный не пользовал а постоянный как то так cSql := "EXECUTE PROCEDURE sp_CreateIndex90( '" + cBase + "','" + cBase + ".cdx','" + cField + "','" + cField + "', '', 2, 512, '' )" а что искать то в ней надо ?

Dima: Haz пишет: а что искать то в ней надо ? Нужно переходить к определенному ROWID в некоторых случаях Haz пишет: EXECUTE PROCEDURE sp_CreateIndex90 Спасибо ! Haz пишет: 10 сек на старом компе с XP Круто

Dima: функции обратной DECODE64 не встречал ? Типа ENCODE64


Haz: Dima пишет: Нужно переходить к определенному ROWID в некоторых случаях мож AdsSetAof() использовать ? темпбаза же не большая

Dima: Haz пишет: мож AdsSetAof() использовать ? неа , это ж фильтр а надо именно перейти к записи.

Haz: Dima пишет: функции обратной DECODE64 не встречал ? Типа ENCODE64 талько если самому писать , за основу взять харборную hb_Encode ...

Haz: Haz пишет: неа , это ж фильтр а надо именно перейти к записи. nRecSave := Recno() nRec := 0 AdsSetAOF() DbGotop() IF !Eof() nRec := RECNO() END AdsClearAof() DbGoto( IF( nRec <> 0. nRec, nRecSave ) или вообще по __DbLocate()

Dima: Haz пишет: или вообще по __DbLocate() а это возможно сделать SQL запросом ?

Haz: Dima пишет: а это возможно сделать SQL запросом конечно , только запрос - почти тот же фильтр самое простое - (cAlias)->( __dbLocate( bBlock,,,,.F.))

Dima: Haz пишет: (cAlias)->( __dbLocate( bBlock,,,,.F.)) Буду тестить , спасибо !

Dima: Добрался наконец и начал переделывать живую задачу под REMOTE ADS И сразу попал на грабли cDictionary:=diskads+"sql\"+sys_name+"f12" словарь не создается почему то совсем ADSDDCREATE( cDictionary,, "Словарь данных ADSDEMO" ) cDictionary -> \\127.0.0.1\sklad$\sql\supervisorF12 лупит ошибку 6420

Haz: AdsConnect цепляется к серверу ? путь к словарю правильный ? создай словарь руками при помощи ARC32 и им же базы в него подабавляй 127.0.0.1 - этож на локальной машине , пропиши обычный путь

Dima: Haz пишет: AdsConnect цепляется к серверу ? Конечно. Рабочая задача. Haz пишет: путь к словарю правильный ? Да Haz пишет: создай словарь руками при помощи ARC32 и им же базы в него подабавляй Не вариант так как нужно делать это прям из проги. Haz пишет: 127.0.0.1 - этож на локальной машине , пропиши обычный путь Все верно так как работаю дома с REMOTE или LOCAL ADS именно через 127.0.0.1 (комп то один)

Dima: сложил в папку diskads+"sql\" файлик test.prg и проверил HB_fileexists(diskads+"sql\test.prg") , все норм .T. путь к файлу получился таким \\127.0.0.1\sklad$\sql\test.prg ЗЫ Это у клиента мы уже меняем IP на сетевой что то типа 192.168.0.100 а дома всегда юзал 127.0.0.1 sklad$ - это имя расшаренного скрытого ресурса net share покажет sklad$ c:\works\alex\ads_sklad Dima пишет: ADSDDCREATE( cDictionary,, "Словарь данных ADSDEMO" ) Перед этой функцией вставил c:=fcreate(cDictionary+".test") fclose(c) файл нормально создался Такое впечатление что ADSDDCREATE не работает с полным путем UNC

Haz: Dima пишет: Такое впечатление что ADSDDCREATE не работает с полным путем UNC вполне возможно что так , но при REMOTE попробуй через LOCAL ( замени 7 на 1 в строке конекта )

Dima: Haz пишет: попробуй через LOCAL до adsConnect60 я еще не дошел и создаю словарь до этого. C Local пробовал тот же эффект собственно код [pre2] if !file(cDictionary) // для каждого юзера создаем свой словарик ADSDDCREATE( cDictionary,, "Словарь данных ADSDEMO") // вот тут получаю 6420 и ADSDDCREATE вернул .F. AdsDDaddTable( "volvoAT",PFL+"volvo.dbf", "" ) AdsDDCreateUser(, alltrim(sys_name), "" , "Пользователь "+alltrim(sys_name)) endif IF !adsConnect60( cDictionary, 0, alltrim(sys_name), '', 7,@tmphh ) Soob("Ошибка подключения к словарю данных","r/r","gr+/r") return nil ENDIF [/pre2]

Haz: может с $ пути не понимает ???? надо эксперементировать выведи путь в INI дома руками обычный впиши а у клиента UNC

Haz: вроде не понимает IP в строке пути , если заменить на имя компа - работает

Dima: да UNC путь не понимает зараза. положил чистую ADD и пробнул подрубится через adsConnect60 , не фига. если путь обычный типа c:\бла бла то работает странно все это

Haz: Dima пишет: да UNC путь понимает путь вида \\сервер\шара



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