/// ///////////////////////////////////////////// ///<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); }
public static DateTime?GetSysdateFromBdd() { C2iRequete requete = new C2iRequete(); requete.TypeReferencePourConnexion = typeof(CSpvSite); requete.TexteRequete = "SELECT sysdate from dual"; CResultAErreur result = requete.ExecuteRequete(0); if (result) { DateTime dateServeur = (DateTime)(((System.Data.DataTable)result.Data).Rows[0][0]); return(dateServeur); } else { return(null); } }
/// //////////////////////////////// public CResultAErreur ExecuteRequete(C2iRequete requete, IElementAVariablesDynamiquesAvecContexteDonnee elementAVariables, bool bStructureOnly) { CResultAErreur result = CResultAErreur.True; Type typeReference = requete.TypeReferencePourConnexion; if (typeReference != null) { ///TODO ///Problème VersionObjet object objServeur = CContexteDonnee.GetTableLoader(CContexteDonnee.GetNomTableForType(typeReference), null, IdSession); if (objServeur != null) { typeReference = objServeur.GetType(); } else { typeReference = null; } } IDatabaseConnexion con; if (typeReference == null) { con = CSc2iDataServer.GetInstance().GetDatabaseConnexion(IdSession, ""); } else { con = CSc2iDataServer.GetInstance().GetDatabaseConnexion(IdSession, typeReference); } object[] lstParams = null; string strRequete = GetTexteRequeteFinaleSql(requete, elementAVariables, ref lstParams, con); int nOldTimeOut = con.CommandTimeOut; con.CommandTimeOut = 60 * 10; IDataAdapter adapter = con.GetAdapterForRequete(strRequete, lstParams); DataSet ds = new DataSet(); try { lock (con) { if (bStructureOnly) { adapter.FillSchema(ds, SchemaType.Source); } else { adapter.Fill(ds); } } if (ds.Tables.Count > 0) { DataTable table = ds.Tables[0]; if (requete.TableauCroise != null) { result = requete.TableauCroise.CreateTableCroisee(table); if (result) { table = (DataTable)result.Data; } } table.TableName = "DONNEES_REQUETE"; result.Data = table; } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error in the request '@1'|102", strRequete)); } finally { con.CommandTimeOut = nOldTimeOut; CUtilDataAdapter.DisposeAdapter(adapter); } return(result); }
//------------------------------------------------------------------------- protected CResultAErreur InitChamps() { CResultAErreur result = CResultAErreur.True; result = InitComboBoxType(); if (!result) { return(result); } if (m_element.DefinitionJeu is C2iRequete) { m_panelEditRequete.MasquerFormulaire(true); m_panelRequete.Visible = true; C2iRequete requete = (C2iRequete)m_element.DefinitionJeu; if (requete == null) { requete = new C2iRequete(m_multiStructure.ContexteDonnee); } requete.ElementAVariablesExterne = m_multiStructure; m_panelEditRequete.RequeteEditee = requete; } else { m_panelRequete.Visible = false; } if (m_element.DefinitionJeu is CStructureExportAvecFiltre) { m_panelFiltre.MasquerFormulaire(true); m_panelStructure.Visible = true; CStructureExportAvecFiltre structureAvecFiltre = (CStructureExportAvecFiltre)m_element.DefinitionJeu; C2iStructureExport structure = structureAvecFiltre.Structure; if (structure == null) { structure = new C2iStructureExport(); } if (structure != null && structure.TypeSource != null) { m_cmbType.SelectedValue = structure.TypeSource; //m_cmbType_SelectedValueChanged ( m_cmbType, new EventArgs() ); } structure.TypeSource = (Type)m_cmbType.SelectedValue; if (m_cmbType.SelectedValue != null && m_cmbType.SelectedValue == typeof(DBNull)) { structure.TypeSource = null; } m_panelEditStructure.StructureExport = structure; m_panelEditStructure.ElementAVariablesPourFiltre = m_multiStructure; m_panelEditStructure.ComboTypeLockEdition = true; m_panelFiltre.ModeSansType = true; CFiltreDynamique filtre = structureAvecFiltre.Filtre; if (filtre == null) { filtre = new CFiltreDynamique(m_multiStructure.ContexteDonnee); filtre.TypeElements = structure.TypeSource; } filtre.ElementAVariablesExterne = m_multiStructure; m_panelFiltre.Init(filtre); } else { m_panelStructure.Visible = false; } m_txtLibelleElement.Text = m_element.Libelle; m_txtPrefix.Text = m_element.Prefixe; return(result); }