Страница 1 из 1

Получение набора данных из ХП (DB2) в MAV

Добавлено: 30 Июнь 2008, 9:56
Леонид
Добрый день!

Простейший случай:
ХП
---------------------
CREATE PROCEDURE MYPROC

SPECIFIC MYPROC
LANGUAGE SQL
DYNAMIC RESULT SETS 1

BEGIN ATOMIC

DECLARE Cur_1 CURSOR WITH RETURN * FROM TAKECOMP_PC_HD;

OPEN Cur_1;
END
---------------------

Вызов в MAV
IF MAVLOAD('exec MYPROC', MyQueue)
MAVSHOWERROR
END

И при вызове ошибка:
Error : [-104] [IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" после текста "MYPROC". Список правильных элементов: "JOIN <joined_table>". SQLSTATE=42601

При вызове их командной строки - все Ok...

Re: Получение набора данных из ХП (DB2) в MAV

Добавлено: 30 Июнь 2008, 10:39
Леонид
Сам и отвечу:

Отрабатывает следующий код:

My_Tmp MAVSelect
My_SP MAVExecSP

My_Tmp.Init(,0)
My_Tmp.BindField(MAVTCPCHD:IDPARENT, MyQueue.IDPARENT)
...
IF My_Tmp.PrepareRun()
MAVSHOWERROR
ELSE
My_SP.PrepareSelect(My_Tmp.GetHSTMT())
My_SP.BindParameter(MAVTCPC:IDPC)
IF My_SP.Run('MYPROC')
MAVSHOWERROR
ELSE
LOOP WHILE NOT My_Tmp.Fetch()
ADD(MyQueue)
END
END
END

Он приводился А.Мялиным в одном из топиков данной конфы. А вот код
IF MAVLOAD('exec TCPC_HD_SEL', MyQueue)
MAVSHOWERROR
END

так и не идет, но да и ладно...