/// /////////////////////////////////////////////
        ///<summary>
        ///retourne la requête formattée pour SQL.
        ///</summary>
        private string GetTexteRequeteFinaleSql(C2iRequete requete, IElementAVariablesDynamiquesAvecContexteDonnee elementAVariables, ref object[] valeursParametres, IDatabaseConnexion database)
        {
            ArrayList lstValeursParametres = new ArrayList();
            string    strTexte             = requete.TexteRequete;
            int       nPos     = strTexte.IndexOf("[@");
            int       nLastPos = nPos;

            while (nPos > 0)
            {
                //Cherche le nom de la variable
                string strNomVar = "";
                nPos += 2;
                while (nPos < strTexte.Length && strTexte[nPos] != ']')
                {
                    strNomVar += strTexte[nPos];
                    nPos++;
                }
                string strIdVar = "";
                foreach (CVariableDynamique variable in elementAVariables.ListeVariables)
                {
                    if (strNomVar.ToUpper() == variable.Nom.ToUpper())
                    {
                        strIdVar = variable.IdVariable;
                        break;
                    }
                }
                if (strIdVar != "")
                {
                    object val = elementAVariables.GetValeurChamp(strIdVar);
                    lstValeursParametres.Add(val);
                    strTexte = strTexte.Replace("[@" + strNomVar + "]", database.GetNomParametre(lstValeursParametres.Count.ToString()));
                }
                if (nLastPos + 1 < strTexte.Length)
                {
                    nPos     = strTexte.IndexOf("[@", nLastPos + 1);
                    nLastPos = nPos;
                }
                else
                {
                    nPos = -1;
                }
            }
            valeursParametres = (object[])lstValeursParametres.ToArray(typeof(object));
            return(strTexte);
        }