![]() |
|
![]() ![]() ![]() |
|
KAnAn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 24.7.2009 Репутация: нет Всего: нет |
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; Выполняю процедуру в Oracle: 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) должен возвращать результат. Однако этого не происходит. На форумах эта проблема периодически всплывает, но ответы не содержат решения. В чем моя ошибка (хотя, даже не знаю, где здесь можно ошибиться ;-)? Как получить выходной параметр из процедуры? Спасибо. |
|||
|
||||
KAnAn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 24.7.2009 Репутация: нет Всего: нет |
Кстати, использование SQLStoredProc1.ExecProc позволяет выполнить процедуру, но значение по-прежнему не возвращает.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |