Exemple #1
0
        public override sc2i.common.CResultAErreur ExecuterOperation(IDatabaseConnexion connection, sc2i.common.IIndicateurProgression indicateur)
        {
            CResultAErreur             result = CResultAErreur.True;
            CAccess97DatabaseConnexion cnx    = connection as CAccess97DatabaseConnexion;

            if (cnx == null)
            {
                return(result);
            }
            CAccessDataBaseCreator creator = cnx.GetDataBaseCreator() as CAccessDataBaseCreator;

            if (creator == null)
            {
                return(result);
            }
            foreach (Type tp in CContexteDonnee.GetAllTypes())
            {
                CStructureTable structure = CStructureTable.GetStructure(tp);
                if (structure != null && creator.TableExists(structure.NomTable))
                {
                    foreach (CInfoChampTable info in structure.Champs)
                    {
                        if (!info.NullAuthorized && !structure.ChampsId.Contains(info))
                        {
                            result = creator.SetValeursParDefautAuxDonneesNulles(structure.NomTable, info);
                            if (!result)
                            {
                                return(result);
                            }
                        }
                    }
                }
            }
            return(result);
        }
        //------------------------------------------------
        public CResultAErreur GetDonnees(IElementAVariablesDynamiquesAvecContexteDonnee elementAVariables, CListeObjetsDonnees listeDonnees, sc2i.common.IIndicateurProgression indicateur)
        {
            CResultAErreur result = CResultAErreur.True;

            if (indicateur != null)
            {
                indicateur.SetBornesSegment(0, IdTablesARetourner.Count());
            }

            DataSet ds        = new DataSet();
            int     nNbTables = 0;

            if (m_query != null)
            {
                m_query.ClearCache();
            }
            foreach (string strIdTable in IdTablesARetourner)
            {
                foreach (object obj in m_query.Childs)
                {
                    IObjetDeEasyQuery q = obj as IObjetDeEasyQuery;
                    if (q.Id == strIdTable)
                    {
                        if (indicateur != null)
                        {
                            indicateur.SetInfo(q.NomFinal);
                        }
                        result = q.GetDatas(m_query.ListeSources);
                        if (result)
                        {
                            DataTable table = result.Data as DataTable;
                            if (table.DataSet != null)
                            {
                                DataTable newTable = table.Clone();
                                newTable.BeginLoadData();
                                foreach (DataRow row in table.Rows)
                                {
                                    newTable.ImportRow(row);
                                }
                                newTable.EndLoadData();
                                table = newTable;
                            }
                            ds.Tables.Add(table);
                        }
                        else
                        {
                            return(result);
                        }
                    }
                }
                if (indicateur != null)
                {
                    indicateur.SetValue(nNbTables++);
                }
            }
            if (indicateur != null)
            {
                indicateur.SetValue(IdTablesARetourner.Count());
            }

            result.Data = ds;

            return(result);
        }