Re: Прямой SQL
Добавлено: 11 янв 2012, 17:13
Попробовал. Всё равно 30007.Den писал(а):Попробовать может сделать, например ..TOP 1000
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
https://asu.tyumbit.ru/
Попробовал. Всё равно 30007.Den писал(а):Попробовать может сделать, например ..TOP 1000
Код: Выделить всё
sql select
SET1.KATSOPRNSOPR,
SET1.KATSOPRDSOPR,
SET1.KATMCNAME,
SET1.SPSOPRPRICE,
SET1.katorg2name,
SET1.KATPARTYNAME,
SET1.SKLORDERNORDER,
SET1.KATPODRNAME,
SET1.KATORG2ADDR,
SET1.SPORDERKOL,
SET2.SPORDERKOL2,
(SET1.SPORDERKOL - SET2.SPORDERKOL2),
SET1.KATORG1NAME,
SET1.SPSOPRKOLFACT,
SET1.SPORDERNREC,
SET1.KATSOPRCGRUZFROM
from
(select
SPORDER.NREC as SPORDERNREC
,KATSOPR.NSOPR as KATSOPRNSOPR
,KATSOPR.DSOPR as KATSOPRDSOPR
,KATMC.NAME as KATMCNAME
,SPSOPR.PRICE as SPSOPRPRICE
,katorg2.name as katorg2name
,KATPARTY.NAME as KATPARTYNAME
,SKLORDER.NORDER as SKLORDERNORDER
,KATPODR.NAME as KATPODRNAME
,KATORG2.ADDR as KATORG2ADDR
,SPORDER.KOL as SPORDERKOL
,KATORG1.NAME as KATORG1NAME
,SPSOPR.CSPORDER as SPSOPRCSPORDER
,SPSOPR.KOLFACT as SPSOPRKOLFACT
,SPORDER.NREC as SPORDERNREC
,KATSOPR.CGRUZFROM as KATSOPRCGRUZFROM
from
KATSOPR
INNER JOIN SPSOPR on KATSOPR.NREC = SPSOPR.CSOPR and 1 = SPSOPR.PRMC
INNER JOIN SKLORDER on KATSOPR.NREC = SKLORDER.CSOPR
INNER JOIN SPORDER on SPORDER.CSPSOPR = SPSOPR.NREC
LEFT OUTER JOIN KATORG as KATORG1 on KATSOPR.CORGBASE = KATORG1.NREC
LEFT OUTER JOIN KATORG as KATORG2 on KATSOPR.CGRUZTO = katorg2.NREC
LEFT OUTER JOIN KATMC on SPORDER.CMC = KATMC.NREC
LEFT OUTER JOIN KATPARTY on SPORDER.CPARTY = KATPARTY.NREC
LEFT OUTER JOIN KATPODR on SPORDER.CCPODR = KATPODR.NREC
where
201 = KATSOPR.VIDSOPR and
(katsopr.corgbase = :_corg ) and
(spsopr.cmcusl = :_cmc )
) as SET1
LEFT OUTER JOIN
(select
SPSOPR.CSPORDER
,SUM (SPORDER.KOL) as SPORDERKOL2
from
KATSOPR
INNER JOIN SPSOPR on KATSOPR.NREC = SPSOPR.CSOPR and 1 = SPSOPR.PRMC
INNER JOIN SKLORDER on KATSOPR.NREC = SKLORDER.CSOPR
INNER JOIN SPORDER on SPORDER.CSPSOPR = SPSOPR.NREC
LEFT OUTER JOIN KATORG as KATORG1 on KATSOPR.CORGBASE = KATORG1.NREC
LEFT OUTER JOIN KATORG as KATORG2 on KATSOPR.CGRUZTO = katorg2.NREC
LEFT OUTER JOIN KATMC on SPORDER.CMC = KATMC.NREC
LEFT OUTER JOIN KATPARTY on SPORDER.CPARTY = KATPARTY.NREC
LEFT OUTER JOIN KATPODR on SPORDER.CCPODR = KATPODR.NREC
where
106 = KATSOPR.VIDSOPR
group by KATMC.NAME, KATORG1.NAME, katorg2.name, SPSOPR.CSPORDER, SPORDER.CSPORDV) as SET2
ON SET1.NREC = SET2.CSPORDER
into tmpVozvratMC
sqlFreeStmt(Stmt);
Это откуда такая таблица?denisag писал(а):tmpVozvratMC
Код: Выделить всё
BeginTransaction(0);
henzap:=SQLAllocStmt;
SqlBindParam(henzap, 1, '0x80010000000002E5');
SqlBindParam(henzap, 1, '0x8001000000000000');
SQLExecStmt(henzap, 's$VedomMater(?, ?)');
message(sqlfetchintomt(henzap, mt));
if (sqlNavigateMT(mt, ffGetFirst, rec) = tsOk) do
{
message(string(rec[4]));
}
while (sqlNavigateMT(mt, ffGetNext, rec) = tsOk);
SqlFreeStmt(henzap);
EndTransaction;
+ Если создавали посредством dsql процедуру, то префикс s$ при вызове вроде не нужно указыватьRAJAH писал(а):SQLExecStmt(henzap, 's$VedomMater(?, ?)');
Неа.Den писал(а):Если создавали посредством dsql процедуру
RAJAH писал(а):Создал с помощью CREATE PROCEDURE хранимку в базе.
RAJAH писал(а):Без кавычек уже на стадии компиляции ругается.
Пробовал даже переписать процедуру: не binary(8)-параметры сделал, а varchar(20), чтобы строки передавать - бесполезно.
Я напрямую всегда отлаживаю через MS Managment Studio (QA) - экономит массу времениedward_K писал(а): А вот не подскажете как мне отладить свою процедуру?
Полный текст:edward_K писал(а):В ms70drv на строчку выше иногда еще и написано в какой строке, того запроса что вызвал ошибку.
Код: Выделить всё
12.05.2012 14:00:47 [RUSSIA81#USER]:
HY010: [Microsoft][Диспетчер драйверов ODBC] Ошибка последовательности функций
Писал и так:Den писал(а):попробуйте все же через переменную
Код: Выделить всё
henzap:=SQLAllocStmt;
SqlBindParam(henzap, 1, hdrpsnrec);
SqlBindParam(henzap, 2, canvalnrec);
SQLExecStmt(henzap, 'VedomMater(?, ?)');
И так пробовал:edward_K писал(а):теперь юзаю #comp(284554544445454)
Код: Выделить всё
SqlBindParam(henzap, 1, #comp(string(hdrpsnrec)));
SqlBindParam(henzap, 2, #comp(string(canvalnrec)));