Clarion - Oracle

ODBC

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Знатокам SQL !!!

В документации по Клариону в книге Clarion Programmer's Guide на странице 717 приводится пример получения некоторого набора данных после вызова хранимой процедуры.
Привожу текст......

Example:

MyFile FILE,DRIVER('ODBC')
Record RECORD
ErrorCode LONG
ErrorMsg STRING(100)
. .
CODE
OPEN(MyFile)
MyFile{PROP:SQL} = 'CALL ProcWithResultSet' ! вызов процедуры
NEXT(MyFile) ! возможно в цикле или нет
IF ~ERRORCODE()
IF MyFile.ErrorCode THEN STOP(MyFileErrorMsg).
END

Note: The above example shows how to return a result set. The
result set must match the fields declared in the named file or
view. The storedprocedure ProcWithResultSet includes a final
select statement that results with the set of requested data.

Мне неудается таким способом получить данные из базы Oracle. Хотя в отличии от этого примера прекрасно работает пример, когда данные читаются кларионовским NEXT - том после явно переданного в PROP:SQL оператора SELECT....

С уважением Захаров Владимир !

(Добавление)

хранимка должна возвращать курсор, тогда и NEXT будет работать, что у тебя в хранимке?

Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com

Здравствуйте уважаемыею.

IF ~ERRORCODE()
IF MyFile.ErrorCode THEN STOP(MyFileErrorMsg).
END

Странная конструкция.

Обратите внимание на соответствие структуры MyFile и возвращаемого результата.

Vasiliev B <soft2@mail.redcom.ru>
Написал: ClaList(2)
Гость

Сообщение Гость »

Здравствую Андрей ! С Уважением Захаров Владимир !

Извиняюся за долгое отсутствие в ClaList - по служебной необходимости !

В хранимой процедуре у меня объявляется и обрабатывается курсор или просто объявляется и открывается курсор !

Возможно я не умею объявлять курсоров в качестве параметров хранимых процедур Oracle.
Хотя я активно использую хранимые процедуры с курсорами, в том числе и возвращающие различные виды параметров кроме курсоров.
Понимание, что нужно иметь соответствующий буфер файла для приема данных курсора.

Подскажи, как объявлять и использовать курсор в хранимой процедуре для получения его результата на клиенте при помощи NEXT.

С Уважением Захаров Владимир !
Написал: ClaList(2)
Ответить