|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Получить значение из SQLStoredProc
Oracle 9.0.1, Delphi 7.0 Enterprise (Build 4.453)
Хранимая процедура: — Возвращает цифры в количестве указанном в f_count Код:
// Все данные в varchar2 для чистоты эксперимента create or replace procedure test_delphi( f_variable in varchar2, f_count in varchar2, f_rezult out varchar2) is begin f_rezult := (substr(to_char(f_variable), (to_number(f_count) * -1))); end; Код:
declare v_Variable varchar2(10); begin test_delphi(579123, 5, v_Variable); dbms_output.put_line('Результат '||v_Variable); end; В Delphi для доступа к данным использую dbExpress. Необходимо получить возвращаемое значение в Delphi используя компонент SQLStoredProc. На форме регистрирую компоненты SQLConnection, SQLStoredProc, Button и Edit. Цепляюсь к базе. SQLConnection работает нормально. У SQLStoredProc указываю схему (SchemaName), выбираю необходимую процедуру (TEST_DELPHI). На кнопке в обработчике Button1Click пишу: Код:
SQLStoredProc1.ParamByName('F_VARIABLE').AsString := '19283746'; SQLStoredProc1.ParamByName('F_COUNT').AsString := '3'; SQLStoredProc1.Open; Edit1.Text := SQLStoredProc1.ParamByName('F_REZULT').AsString; SQLStoredProc1: Cursor not returned from Query. Судя по описанию работы с компонентами dbExpress, SQLStoredProc1 в своем параметре F_REZULT (который, кстати, в компоненте отобразился правильно, ParamType = ptOutput) должен возвращать результат. Однако этого не происходит. На форумах эта проблема периодически всплывает, но ответы не содержат решения. В чем моя ошибка (хотя, даже не знаю, где здесь можно ошибиться ;-)? Как получить выходной параметр из процедуры? Спасибо. |