Форум » [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

Dima: странно у меня не понял cDictionary:="\\dima-21a4fe250e\sklad$\"+"sql\"+"temp.add" tmphh:=nil ? adsConnect60( cDictionary, 0, "ADSSYS", '', 7,@tmphh ) //.f. хотя в проводнике дав путь \\dima-21a4fe250e\sklad$\sql , туда попадаю

Haz: Dima пишет: sklad$ может он скрытую шару не понимает , простой путь без $ видит

Dima: local cDictionary:="\\dima-21a4fe250e\sklad\"+"sql\"+"temp.add" // убрал $ @ 0,0 say adsConnect60( cDictionary, 0, "ADSSYS", '', 7,@tmphh ) // .f. @ 1,1 say file(cDictionary) // .t. Пипец засада..........или прощайте SQL запросы Можно сделать через Ж... но не хочется. Расшарить можно в данном случае папку SQL на серваке и прицепить ей букву , тогда заработает ясен пень.


Haz: не пойму ток что создал шару выдал права прописал unc путь \\Mycomp\myshare\dict.add и все работает

Dima: Haz Спасибо что помогаешь. На сегодня хватит видимо. Утро вечера мудренее ;) Мож мысль во сне придет кто знает ;)

Dima: на сон грядущий тест сделал. таки да имя компа надо указывать и словарь создается а вот добавить в него базу что то пока не выходит. и скрытую шару понимает а как по IP узнать имя компа ?

Dima: ADSDDCREATE не работал с UNC в котором указан IP по причине что стоял вот такой вызов AdsLocking( .f. ) убрал , попустило , кроме того нужно указывать порт но базу пока добавить в словарь не получается это работает уже (жесть) local cDictionary:=ip_port+"\sklad$\"+"sql\"+"temp.add" ADSDDCREATE( cDictionary,, "Словарь данных ADSDEMO") Dima пишет: но базу пока добавить в словарь не получается там та же фигня и указывать нужно IP , PORT + шара ЗЫ Еще немного поседел , пока понял ;)

Dima: Haz Вот такой запрос у меня не работает и видать по тому что слово GROUP зарезервированное. "SELECT ROWID AS Recs , INDEKS INTO #TmpBase FROM volvoAT WHERE GROUP=1" Как это обойти ? Пробовал так и тож не катит "SELECT ROWID AS Recs , M.INDEKS INTO #TmpBase FROM volvoAT M WHERE M.GROUP=1"

Haz: SELECT ROWID AS Recs , INDEKS INTO #TmpBase FROM volvoAT WHERE [GROUP]=1

Dima: Haz Работает

Dima: Что то LIKE с кириллицей не пашет .......... sQlStr:="SELECT ROWID AS Recs , INDEKS INTO #TmpBase FROM volvoAT WHERE indeks like '%ПРОВ%'" а если искать в ANSI кодировке то работает , хотя база у меня OEM

Haz: Dima пишет: Что то LIKE с кириллицей не пашет пашет, что то с кодировкой скорее, протестируй в ARC32 или что то типа ANSI2OEM( 'ПРОВ' ) попробуй

Dima: как бы сказать AdsDDaddTable что бы таблица добавлялась в OEM ?

Haz: Dima пишет: как бы сказать AdsDDaddTable что бы таблица добавлялась в OEM ? в вызове есть один из параметров CHARSET, не пробовал , но уверен есть . Надо в исходник заглянуть

Dima: я пробовал но не вышло. ладно решил вопрос перекодировкой

Haz: Dima пишет: я пробовал но не вышло по этой схеме пробовал ? HB_FUNC( ADSDDADDTABLE ) { hb_retl( AdsDDAddTable( HB_ADS_PARCONNECTION( 4 ) /* hConnect */, ( UNSIGNED8 * ) hb_parcx( 1 ) /* pTableName */, ( UNSIGNED8 * ) hb_parcx( 2 ) /* pTableFileName */, ( UNSIGNED16 ) hb_ads_iFileType, ( UNSIGNED16 ) hb_ads_iCharType, ( UNSIGNED8 * ) hb_parcx( 3 ) /* pTableIndexFileName */, NULL ) == AE_SUCCESS );

Dima: да я 5-м параметром ставил 2

Dima: тут по ходу можно еще поиграть с AdsSetCharType(2, .t.)

Dima: Еще понял что если работать по старинке то есть базы открывать через USE (условно говоря) то в в самом начале проги у нас есть подключение к ADS , AdsConnect(ip_port) Так вот если в каком месте проги делать выборку через SQL запрос и подключаться к словарю вот так adsConnect60. То в дальнейшем после выхода из выборки и закрытия базы ADSSQL , основная база может отвалиться. Поэтому перед выходом я делаю переподключение , примерно так AdsConnect(ip_port) adshandle:=AdsConnection() ЗЫ Вдруг кому и пригодится.

Haz: Dima пишет: открывать через USE замени все USE cTable ALIAS cAlias на DOSQL( cAlias, "SELECT * FROM " + cTable ) и все решиться само ))) PS вроде ж убедился что по скорости не проигрываешь, а по функционалу - просто улет



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