I'm working with complex script.
Here is one example (of many scripts i'm using).
How can I parse through all available statement ?/*Mise à jour Répartition par entêtes groupe de produits Bennes*/
/*Affectation du devis*/
Set @Devis = :IdDevis;
/*Récupération de la variante principale*/
Set @VariantePrincipale = (Select MIN(IdVarianteClient) from DevisFE2000 Where DevisFE2000.IdDevis = @Devis);
/*Calcul du PRE Total grp produit pour proratisation cout benne*/
Set @PRETotalGrpProduitBenne =
(Select SUM(PVTotalProduitHT) + SUM(PVTotalPoseHT )
from DevisFE2000
INNER JOIN devisrepartition ON (DevisFE2000.IdDevis=devisrepartition.IdDevis)
Where DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` not in ('LO1','LO2','S')
and DevisFE2000.`IDVarianteClient` = @VariantePrincipale
and devisrepartition.IdGroupeProduitRepartition = 'LO2'
and devisrepartition.IdGroupeProduit = DevisFE2000.IdGroupeProduit);
/*Calcul du cout benne total*/
Set @CoutBenneTotal = (Select SUM(PVTotalProduitHT)
from DevisFE2000
Where DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` in ('LO2'));
/*Passage de tous les repères a zéro*/
UPDATE DevisFE2000
Set
DevisFE2000.`ProrataCoutBenne` = 0
Where
DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` not in ('LO1','LO2','S');
/*Passage de tous les repères a zéro*/
UPDATE DevisFE2000
Set
DevisFE2000.`Visible` = 0
Where
DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` in ('LO2');
/*Mise à jour des Entetes principales de la variante principale par rapport au groupe produit Cout Benne*/
UPDATE DevisFE2000,DevisRepartition
Set
DevisFE2000.`ProrataCoutBenne` = (DevisFE2000.PRETotalProduitHT / @PRETotalGrpProduitBenne) * @CoutBenneTotal
Where
DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` not in ('LO1','LO2','S')
and DevisFE2000.`IDVarianteClient` = @VariantePrincipale
and DevisFE2000.IdDevis = DevisRepartition.IdDevis
and DevisRepartition.`IdGroupeProduitRepartition` = 'LO2'
and devisrepartition.IdGroupeProduit = DevisFE2000.IdGroupeProduit;
/*Mise à jour des Entetes principales des autres variante*/
DROP TEMPORARY TABLE IF EXISTS DevisFE200GrpTmp;
CREATE TEMPORARY TABLE IF NOT EXISTS DevisFE200GrpTmp
Select
DevisFE2000.`ProrataCoutBenne`,
DevisFE2000.`IdRepereClient`
From DevisFE2000
Where
DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` not in ('LO1','LO2','S')
and DevisFE2000.`IDVarianteClient` = @VariantePrincipale;
UPDATE DevisFE2000,DevisFE200GrpTmp
Set
DevisFE2000.`ProrataCoutBenne` = DevisFE200GrpTmp.`ProrataCoutBenne`
Where
DevisFE2000.IdDevis = @Devis and DevisFE2000.entete and DevisFE2000.`IdGroupeProduit` not in ('LO1','LO2','S')
and DevisFE2000.`IDVarianteClient` @VariantePrincipale AND DevisFE2000.`IdRepereClient`= DevisFE200GrpTmp.`IdRepereClient`;
DROP TEMPORARY TABLE IF EXISTS DevisFE200GrpTmp;
Could you please provide us the ability of doing this ?
I'll be happy to have a function giving me a statement :
Script.parse;
Test:= Script.SQLStatement[1]
This is HIGHLY missing in crlab mydac product