Ejemplo n.º 1
0
        public override void PostImportar()
        {
            if (ConexionExterna != null)
            {
                if (ConexionExterna.State == System.Data.ConnectionState.Open)
                {
                    ConexionExterna.Close();
                }
                ConexionExterna.Dispose();
                ConexionExterna = null;
            }

            base.PostImportar();
        }
Ejemplo n.º 2
0
        public override void PreImportar()
        {
            if (ConexionExterna != null)
            {
                if (ConexionExterna.State == System.Data.ConnectionState.Open)
                {
                    ConexionExterna.Close();
                }
                ConexionExterna.Dispose();
            }

            ConexionExterna = new System.Data.Odbc.OdbcConnection();
            ConexionExterna.ConnectionString = @"dsn=" + this.Dsn + ";";
            ConexionExterna.Open();

            base.PreImportar();
        }
Ejemplo n.º 3
0
        public virtual void ImportarTabla(MapaDeTabla mapa)
        {
            Progreso.Value = 0;
            Progreso.ChangeStatus("Leyendo la tabla " + mapa.ToString());

            string SqlSelect = @"SELECT * FROM " + mapa.TablaExterna;

            if (mapa.Where != null)
            {
                SqlSelect += " WHERE " + mapa.Where;
            }

            // Hago un SELECT de la tabla
            System.Data.IDbCommand TableCommand = ConexionExterna.CreateCommand();
            TableCommand.CommandText = SqlSelect;
            System.Data.DataTable ReadTable = new System.Data.DataTable();
            ReadTable.Locale = System.Globalization.CultureInfo.CurrentCulture;
            ReadTable.Load(TableCommand.ExecuteReader());

            if (mapa.AutoSaltear)
            {
                mapa.Saltear = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting <int>("Importar.RegistrosImportados." + this.Nombre + "." + mapa.Nombre, 0);
                if (mapa.Saltear > 1)
                {
                    mapa.Saltear--;
                }
            }

            System.Data.IDbTransaction Trans = this.Connection.BeginTransaction();
            // Navegar todos los registros
            Progreso.ChangeStatus("Incorporando " + ReadTable.Rows.Count.ToString() + " registros de la tabla " + mapa.ToString());
            Progreso.Max = ReadTable.Rows.Count;
            int RowNumber = 0;

            foreach (System.Data.DataRow OriginalRow in ReadTable.Rows)
            {
                ++RowNumber;

                if (mapa.Saltear == 0 || RowNumber > mapa.Saltear)
                {
                    Lfx.Data.Row ProcessedRow = this.ProcesarRegistro(mapa, OriginalRow);
                    this.ImportarRegistro(mapa, ProcessedRow);
                }

                if ((RowNumber % 200) == 0)
                {
                    Progreso.Advance(200);
                    Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Importar.RegistrosImportados." + this.Nombre + "." + mapa.Nombre, RowNumber);
                    Trans.Commit();
                    Trans.Dispose();
                    Trans = this.Connection.BeginTransaction();
                }

                if (mapa.Limite > 0 && RowNumber > mapa.Limite)
                {
                    break;
                }
            }

            Trans.Commit();
            Trans.Dispose();
            Trans = null;
            Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Importar.RegistrosImportados." + this.Nombre + "." + mapa.Nombre, RowNumber);
        }