Курсор не возвращается из запроса

Я использую Delphi XE и FireBird 2.5.

Попробуйте использовать TSQLStoredProc и выдайте мне ошибку «Курсор не возвращен из запроса», когда я устанавливаю для свойства Active значение TRUE.

Фиктивный пример хранимой процедуры

CREATE PROCEDURE NEW_PROCEDURE
RETURNS(
  RDO SMALLINT)
AS
BEGIN
  Rdo = 5; 
  /* Procedure body */
  SUSPEND;
END;

person Antonio    schedule 29.08.2011    source источник


Ответы (2)


В качестве обходного пути должен работать запрос типа SELECT * FROM NEW_PROCEDURE (используя TSQLQuery).

person Ondrej Kelle    schedule 29.08.2011

Я думаю, вы должны использовать метод ExecProc вместо Open/Active. Установка для Active значения true должна использоваться только в том случае, если ваша инструкция SQL возвращает ResultSet (набор записей), чего нет у вас.

С уважением,

Стефан

person Stefaan    schedule 29.08.2011
comment
Это так, не так ли? Он должен вернуть результирующий набор из 1 строки с 1 столбцом. Оператор SUSPEND; делает его доступным для выбора. - person Ondrej Kelle; 29.08.2011