Comment accéder a la valeur renvoyer par le composant qui éxecute une procédure stockée ? (en l'occurence, un identifiant).
Comment accéder a la valeur renvoyer par le composant qui éxecute une procédure stockée ? (en l'occurence, un identifiant).
salut
Avec IBStoredProc1.FieldByName('VariableDeRetour').
@+
Voici le code pour la base et le générateur.
Quelle est le nom de ma variable dans ce cas ?
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 SET SQL DIALECT 3; /* CREATE DATABASE 'C:\TOTO.GDB' PAGE_SIZE 1024 DEFAULT CHARACTER SET */ /* Table: ORDINATEUR, Owner: SYSDBA */ CREATE TABLE "ORDINATEUR" ( "ORDI_ID" INTEGER NOT NULL, "ORDI_NOM" VARCHAR(15), PRIMARY KEY ("ORDI_ID") ); CREATE GENERATOR "GEN_ORDI_ID"; COMMIT WORK; SET AUTODDL OFF; SET TERM ^ ; /* Stored procedures */ CREATE PROCEDURE "TABLE_GEN_ID" RETURNS ( "AVALUE" INTEGER ) AS BEGIN EXIT; END ^ ALTER PROCEDURE "TABLE_GEN_ID" RETURNS ( "AVALUE" INTEGER ) AS BEGIN AVALUE = GEN_ID(GEN_ORDI_ID,1); END ^ SET TERM ; ^ COMMIT WORK; SET AUTODDL ON; /* Grant Roles for this database */ /* Grant permissions for this database */
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /* Stored procedures */ CREATE PROCEDURE "TABLE_GEN_ID" RETURNS ( "AVALUE" INTEGER <--- là : AVALUE ) AS BEGIN EXIT; END ^
Bon, ça me rassure, j'étais pas à côté de la plaque.
Sous D7, quand je tape proc.fieldbyname('AVALUE').AsInteger, j'ai droit à un message d'erreur avec écrit proc : champ 'AVALUE' non trouvé.
Tésté aussi avec 'avalue', des fois que...
Ooopsj'ai fais une erreur d'inattention. Il faut utiliser ParamByName.
@+ Claudius
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MaValeur := Proc.ParamByName('AVALUE').AsInteger;
Merci pour vos réponses rapides.
Attention : le tuto de Kloo sur les compteurs auto-incrémentés ne convient pas à D7 ! (C'est FieldByName qui est utilisé !).
Partager