Форум » [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: Haz пишет: ROWID думаю тоже можно поправить - определять его в образующем SELECT ROWID AS R, VaolvoAt.* INTO # тогда в темпбазу он должен перейти полем R.... ходя не проверял ( проверил - редактируется Cамое то

Dima: что то косяк вылазит. все вроде норм проходит а ошибка есть sQlStr:="SELECT ROWID AS Recs , INDEKS INTO #TmpBase FROM volvoAT WHERE MARKA=1 and naim like '%B%'" ? dosql(sQlStr) //0 sele adssql set relation to Decode64(right(recs,6)) into volvo browse() sQlStr:="DROP TABLE #TmpBase" set relation to adssql->(dbclosearea()) ? AdsCreateSQLStatement(,2) // .t. ? ADSVERIFYSQL(sQlStr) // .t. ? AdsExecuteSqlDirect(sQlStr) //.t. ? AdsGetLastError() // 5018 к чему бы это и что я сделал не так ?

Haz: MARKA=1 По MARKA надеюсь индекс есть для оптимизации))) 5018 эта и у меня постоянно вылазит , забил


Dima: Haz пишет: забил

Haz: вижу все заработало , поздравляю

Dima: Haz Спасибо без тебя не разобрался бы !

Dima: Планирую еще сложные отчеты переделать , чую SQL тут должен помочь Точнее выборку для них.

Haz: Dima пишет: не разобрался бы разобрался бы , если б захотел и не бросил )) Планирую еще сложные отчеты переделать установи Advantage Database Architect - помогает ошибки в запросах ловить

Dima: Haz пишет: установи Advantage Database Architect Стоит давно уже. Haz пишет: разобрался бы , если б захотел и не бросил )) на это ушло бы очень много времени

Dima: Haz Есть вопросик. Собственно вот так я выбираю остатки товара на дату. Пример не самодостаточный но вполне понятен. А вот как такую же выборку в базу VREM сделать с помощью SQL запроса ? [pre2] sele nomen do while !eof() f_nomer:=nomen->nomer sele karta ost:=0 if dbseek(f_nomer) karta->(dbOrderInfo(DBOI_SCOPEBOTTOM,,,f_nomer)) do while !eof() if karta->data_z>dth2 skip loop endif ost+=(karta->prixod-karta->rasxod) skip enddo karta->(dbOrderInfo(DBOI_SCOPEBOTTOMCLEAR)) VREM->(dbappend()) repl VREM->ostat with ost,; VREM->cod with nomen->cod,; VREM->naim with nomen->naim endif sele nomen skip enddo [/pre2]

Haz: Dima пишет: А вот как примерно так do !nomen->(eof()) cSql := "select SUM( prixod - rasxod ) AS ost from karta where data_z <= dth2 and nomer = '" + nomen->nomer + "'" SQL( cAlias, cSql) If !(cAlias)->(Eof()) VREM->(dbappend()) VREM->ostat := cAlias->ost VREM->cod := nomen->cod VREM->naim := nomen->naim END cAlias->(DbCloseArea()) nomen->(DbSkip(1)) end где nomer - имя поля по которому SCOPE ( из примера на ясно как звать ) можно подумать как вообще обойтись одним запросом базы большие ? мож на мыло прислать ?

Dima: Haz пишет: где nomer - имя поля по которому SCOPE ( из примера на ясно как звать ) Это уникальный номер складской карточки. Думаешь с таким запросом быстрее будет работать нежели по старинке ?

Haz: Dima пишет: базы большие ? мож на мыло прислать ?

Dima: Да вышлю чуть позже.

Dima: Отправил

Haz: Dima пишет: можно подумать как вообще обойтись одним запросом где то так SELECT N.NOMER, N.COD, N.NAIM, O.OST FROM NOMEN N LEFT JOIN ( SELECT SUM (K.PRIXOD -K.RASXOD) AS OST, K.NOMER FROM KARTA K WHERE K.DATA_Z <= KDTH2 GROUP BY K.NOMER ) O ON N.NOMER = O.NOMER сейчас по твоей базке погоняю

Haz: вот результат SELECT N.NOMER, N.COD, N.NAIM, O.OST FROM NOMEN N LEFT JOIN ( SELECT SUM (K.PRIXOD - K.RASXOD) AS OST, K.NOMER FROM KARTA K WHERE K.DATA_Z <= '01.01.2013' GROUP BY K.NOMER ) O ON N.NOMER = O.NOMER обязательны индексы по NOMER DATA_Z PS: если таблицы конвертнуть в родной для ADS формат .ADT - запрос выполняется почти в два раза быстрее

Dima: Сколько примерно по времени формировалась такая выборка на 01.01.2013 ?

Dima: Dima пишет: sQlStr:="SELECT ROWID AS Recs , INDEKS INTO #TmpBase FROM volvoAT WHERE MARKA=1 and naim like '%B%'" Haz А каким образом я могу устроить SEEK по этой базе #TmpBase. Как то можно создать такой же временный индекс в памяти ?

Haz: 10 сек на старом компе с XP



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