Les variables hotes dans les ordres SQL doivent être précédées de deux point ":" alors que ce n'est pas obligatoire dans le reste de la PS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| set term !! ;
CREATE PROCEDURE EXTRAITLIGNES_FORUM (Debut INTEGER, Fin INTEGER)
RETURNS (POST_ID INTEGER, FORUM_ID VARCHAR (8))
AS
DECLARE VARIABLE i INTEGER;
BEGIN
i = 0;
FOR SELECT POST_ID, FORUM_ID FROM FORUM_POSTS WHERE AFFICHE=1 ORDER BY POST_DATE DESC
INTO :POST_ID, :FORUM_ID DO
BEGIN
i = i + 1;
IF (i > Fin) THEN EXIT ;
IF (i >= Debut) THEN SUSPEND;
END
END !!
set term !! ; |
Par contre je ne vois pas ce que vous vouliez ajouter à la place de vos ??? .
Je ne sais plus si c'est vous qui aviez posé la question mais sous Firebird 1.5 il est inutile d'écrire une tel PS grace à la fonction FIRST et SKIP
SELECT FISRT 10 SKIP 30 POST_ID, FORUM_ID FROM FORUM_POSTS WHERE AFFICHE=1 ORDER BY POST_DATE DESC;
Partager