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

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Леонид
Бывалый
Сообщения: 84
Зарегистрирован: 31 Август 2005, 17:07

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

Сообщение Леонид »

Добрый день!

Простейший случай:
ХП
---------------------
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...
Леонид
Бывалый
Сообщения: 84
Зарегистрирован: 31 Август 2005, 17:07

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

Сообщение Леонид »

Сам и отвечу:

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

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

так и не идет, но да и ладно...
Ответить