J'ai IB 6.01 OpenSource (Delphi 7 Pro sur WinXP Pro).
Ma base de données comporte quelques Procédures Stockées.
Je compile ces PS en exécutant les commandes dans un TIBSQL (issu des IBX Delphi).
Or, lorsque j'essaie de compiler la PS suivante :
... j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE PROCEDURE PS_MONTEST (IN_COMPTE INTEGER) RETURNS (OUT_DISPO NUMERIC(10,2)) AS DECLARE VARIABLE CODE_DEV INTEGER; DECLARE VARIABLE MNT_SUMSOLDES NUMERIC(10,2); BEGIN SELECT MNT_SOLDE,CODE_DEVISE FROM TA_COMPTE WHERE CODE_COMPTE=:IN_COMPTE INTO OUT_DISPO,CODE_DEV; SELECT SUM(MNT_SOLDE) FROM TA_COMPTE WHERE CODE_DEVISE=:CODE_DEV AND CODE_COMPTEPERE=:IN_COMPTE INTO MNT_SUMSOLDES; IF (MNT_SUMSOLDES IS NOT NULL) THEN OUT_DISPO=OUT_DISPO+MNT_SUMSOLDES; SUSPEND; END;
J'ai constaté qu'en retirant la ligne 6 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 invalid request BLR at offset 173 bad parameter number
... la PS se compile sans souci
Code : Sélectionner tout - Visualiser dans une fenêtre à part /*SELECT SUM(MNT_SOLDE) FROM TA_COMPTE WHERE CODE_DEVISE=:CODE_DEV AND CODE_COMPTEPERE=:IN_COMPTE INTO MNT_SUMSOLDES;*/
De plus, lorsque j'exécute la commande :
Tout baigne 8) Ce n'est donc pas un problème de champs qui n'existent pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT SUM(MNT_SOLDE) FROM TA_COMPTE WHERE CODE_DEVISE=-211 AND CODE_COMPTEPERE=13
Partager