Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2004, 10h32   #1
Invité de passage
 
Homme Romuald
Webdesigner
Inscription : décembre 2004
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Romuald
Localisation : France

Informations professionnelles :
Activité : Webdesigner
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 7
Points : 0
Points : 0
Par défaut erreur Procédure stockée

Bonjour,
Voici mon problème, je viens de commencer une procédure stockée qui me premettra d'afficher ma table en pas de 10 enregistrements par page.
Un peu d'indulgence, je débute. Quelqu'un peut-il m'aider à remplacer mes ??? par ce qui doit être écrit ? Je ne sais pas ce qu'il faut inscrire dans les conditions. Merci par avance.

Code :
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 !! ;
Edité par Barbibulle
Ajout des balises codes (même si on ne peut pas utiliser la mise ne forme des caractères c'est plus lisible quand même).
sniper2940 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 11h10   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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.

Code :
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

Code :
SELECT FISRT 10 SKIP 30 POST_ID, FORUM_ID FROM FORUM_POSTS WHERE AFFICHE=1 ORDER BY POST_DATE DESC;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 11h27   #3
Invité de passage
 
Homme Romuald
Webdesigner
Inscription : décembre 2004
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Romuald
Localisation : France

Informations professionnelles :
Activité : Webdesigner
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 7
Points : 0
Points : 0
Par défaut Les ":"

Je n'utilise pas Firebird mais Interbase v5. donc je suis contraint de faire une procédure stockée.

Par contre les ":" me provoque une erreur supplémentaire lorsque j'exécute la requête.
sniper2940 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 11h35   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Ah j'espère qu'il n'y a pas trop de différences entre la version 5 et la 6.

Sur la version 6 ce que j'ai donné fonctionne parfaitement mis à part le dernier Set term qui est faux, il faut mettre :
à la place.

Quel est le message d'erreur ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 13h40   #5
Invité de passage
 
Homme Romuald
Webdesigner
Inscription : décembre 2004
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Romuald
Localisation : France

Informations professionnelles :
Activité : Webdesigner
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 7
Points : 0
Points : 0
Par défaut ça passe

Merci beaucoup pour le coup de main. Je viens de corriger mon erreur en appelant Debut et Fin par ":". Vous m'avez mis sur le bon chemin. Merci encore. Il ne me restera plus qu'à chercher comment exécuter cette procédure à partir de mon fichier .php
sniper2940 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 14h09   #6
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Pour l'appeler faites

Code :
SELECT POST_ID, FORUM_ID FROM EXTRAITLIGNES_FORUM(10,20);
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h31.


 
 
 
 
Partenaires

Hébergement Web