Опять возникла проблема при написании ХП с EXECUTE STATEMENT. Дело вот в чем: в интерефейсе необходимо на грид выводить только заданное количество записей (указывается в TEdit), при чем необходимо выдать пользователю сообщение об общем количестве страниц. Ну чтото типа вроде "Показана 5 страница из 63". Т.к. все таблицы, для которых это необходимо разработаны по единым принципам решил все запихнуть в ХП:
Код: Выделить всё
CREATE PROCEDURE COUNT_PAGES(
TABLE_NAME VARCHAR(255) CHARACTER SET NONE,
RECORDS_PER_PAGE BIGINT,
WHERE_STR VARCHAR(1024) CHARACTER SET NONE)
RETURNS(
RESULT BIGINT)
AS
DECLARE VARIABLE CC BIGINT;
DECLARE VARIABLE Q VARCHAR(1024) CHARACTER SET NONE;
BEGIN
CC = 0;
IF (TRIM(WHERE_STR) = '') THEN
WHERE_STR = '1 = 1';
Q = 'SELECT COUNT(ID) FROM ' || TABLE_NAME || ' WHERE ' || WHERE_STR;
EXECUTE STATEMENT Q INTO :СС;
RESULT = DIV(CC, RECORDS_PER_PAGE);
IF (MOD(CC, RECORDS_PER_PAGE) <> 0) THEN
RESULT = RESULT + 1;
END
В чем проблема - понять не могу. Помогите пожалуйста.