Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с SQLStoredProc, Получить данные в SQLStoredProc 
:(
    Опции темы
KAnAn
Дата 27.8.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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) должен возвращать результат. Однако этого не происходит.
На форумах эта проблема периодически всплывает, но ответы не содержат решения.

В чем моя ошибка (хотя, даже не знаю, где здесь можно ошибиться ;-)? 
Как получить выходной параметр из процедуры?

Спасибо.
PM MAIL   Вверх
KAnAn
Дата 27.8.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.7.2009

Репутация: нет
Всего: нет



Кстати, использование SQLStoredProc1.ExecProc позволяет выполнить процедуру, но значение по-прежнему не возвращает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.