Voilà, j'ai circulé sur le forum et ai fait la connaissance de EXECUTE STATEMENT.

Actuellement, je fais une procédure qui marche nickel sauf pour une ligne (bien sûr la plus importante).

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
set term ^;
create procedure PurgerBase
as
declare variable lesSimulations varchar(50);
declare variable lesDomaines varchar(50);
declare variable lePrefixe varchar(20);
declare variable laTable varchar(40);
declare variable laRequete varchar(256);
BEGIN
	lesSimulations='select SimKey from Simulation where SimDeleted=0';
	lesDomaines='select DomRowId from HSYS_Domaines';
	for select TsvNomTable,TsvPrefixeChamp from tsversion into laTable,lePrefixe
	do begin
		laRequete='update '||laTable||' set '||:lePrefixe||'Deleted=1 ';
		laRequete=:laRequete||'where ('||:lePrefixe||'Simulation>0 and ';
		laRequete=:laRequete||:lePrefixe||'Simulation not in ('||:lesSimulations||')) or ';
		laRequete=:laRequete||:lePrefixe||'Domaine not in ('||:lesDomaines||')';
		execute statement :laRequete;
	suspend;
	end
END ^
set term; ^
Je n'arrive pas à faire l'execute statement, peut-être que je m'en sers mal, enfin voilà, si vous pouviez m'aider svp