Возник вопрос как изменяется ROW_COUNT.
Допустим есть у меня ХП, которая внутрях делает какие-то простые математические 
операции и вызвращает 1 результат.
Если я вызову эту процедуру с помощью EXECUTE PROCEDURE ... RETURNING VALUES, 
то как она повлияет на ROW_COUNT от предыдущего запроса.

Оказывается что вызов EXECUTE PROCEDURE ... RETURNING VALUES устанавливает 
ROW_COUNT в ноль, что, по-моему, неверно.

Вот пример:

CREATE PROCEDURE TEST_PROC
RETURNS (ID INTEGER)
AS
BEGIN
 ID = 1;
 SUSPEND;
END;

COMMIT;


EXECUTE BLOCK
RETURNS (
 RESULT INTEGER )
AS
BEGIN
 FOR SELECT FIRST 5 1 FROM RDB$RELATIONS INTO :RESULT DO BEGIN END

 RESULT = ROW_COUNT;
 SUSPEND;

 EXECUTE PROCEDURE TEST_PROC RETURNING_VALUES :RESULT;

 RESULT = ROW_COUNT;
 SUSPEND;
END

Ответить