Bonjour à tous et merci,
J'ai une base de donnée crée sous Firebird 1.5.
Je veux passer le nom d'une table comme paramètre dans une procédure stocké.
Tous d'accord, qu'avec Intrebase c impossible, mais avec firebird c possible.
Bon, j'ai l'essayé avec firebird mais même pb !!!!
et voici mon code de la procédure stocké :
Pour comprendre ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ALTER PROCEDURE PS_UPDATE_SEQ AS DECLARE VARIABLE ENTITE VARCHAR(30); DECLARE VARIABLE I INTEGER; begin for select entite from sequenceur into :entite do begin execute statement 'select max(id) from ' || :entite into :i; suspend; update sequenceur seq set seq.compteur = :i where seq.entite = :entite; suspend; end end
on a table sequenceur contenant la liste des nom des tables dans la colonne entite et leurs compteurs d'id.
sequenceur (entite varcher(30), compteur integer)
Pour chaque nom du table faire : calculer le max des id et l'affecter au variable i.
puis mettre à jour le compteur de la table sequenceur pour chaque entite (nom table) parcouru.
Je crois que c clair. (espérent bien bien sûr)
lors de l'execution tous va bien mais qds je vérifi la colonne compteur de la table sequenceur rien n'a été changé !!! (bien sûr j'ai fait tout les commit)
[/code]
Partager