コード例 #1
0
        public override void Insert(System.Data.DataTable data, string toTable)
        {
            DB2BulkCopy bulk;

            if (this._s == DBStatus.Begin_Trans)
            {
                bulk = new DB2BulkCopy(conn, DB2BulkCopyOptions.Default);
            }
            else
            {
                bulk = new DB2BulkCopy(conn);
            }

            try
            {
                bulk.DestinationTableName = toTable;
                bulk.WriteToServer(data);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bulk.Close();
            }
        }
コード例 #2
0
 public Db2Bulk(string ConnectionString, int timeout = 1800,
                BulkCopyOptions option = BulkCopyOptions.KeepIdentity)
 {
     this.Option           = option;
     this.ConnectionString = ConnectionString;
     bulkCopy = CreatedBulkCopy(option);
     bulkCopy.BulkCopyTimeout = timeout;
 }
コード例 #3
0
            public DB2InsightBulkCopy(DB2BulkCopy bulkCopy)
            {
                if (bulkCopy == null)
                {
                    throw new ArgumentNullException("bulkCopy");
                }

                _bulkCopy = bulkCopy;
                _bulkCopy.DB2RowsCopied += OnRowsCopied;
            }
コード例 #4
0
        public Db2Bulk(IDbConnection dbConnection, int timeout = 1800,
                       BulkCopyOptions option = BulkCopyOptions.KeepIdentity)
        {
            this.Option           = option;
            this.ConnectionString = ConnectionString;
            DB2Connection oracleConnection = (DB2Connection)dbConnection;

            bulkCopy = new DB2BulkCopy(oracleConnection, (DB2BulkCopyOptions)option);
            bulkCopy.BulkCopyTimeout = timeout;
        }
コード例 #5
0
ファイル: IBMBulkCopy.cs プロジェクト: Zawulon/ETL
        public void IBMBuldCopy()
        {
            string sql_bruv_1 = "Server=10.24.1.202:446;Database=BRUVDB4V;UID=ATWO;PWD=24rete31;Max Pool Size=100;Min Pool Size=10;";
            string sql_frymek = "Server=10.27.5.197:50000;Database=BRUV;UID=db2admin;PWD=db2pass1234!@#$;Max Pool Size=100;Min Pool Size=10;";

            try
            {
                using (DB2Connection myConn = new DB2Connection(sql_bruv_1))
                {
                    using (DB2Connection conn = new DB2Connection(sql_frymek))
                    {
                        myConn.Open();
                        conn.Open();

                        log.InfoFormat("{0}: Time elapsed: {1}", Table, DateTime.Now);
                        string myInsertQuery = String.Format("SELECT * FROM RREV.{0}", Table);

                        using (DB2Command myDB2Command = new DB2Command(myInsertQuery, myConn))
                        {
                            using (DB2DataReader reader = myDB2Command.ExecuteReader())
                            {
                                using (DB2BulkCopy salesCopy = new DB2BulkCopy(conn))
                                {
                                    salesCopy.DestinationTableName = String.Format("ATWO.{0}", Table);
                                    salesCopy.WriteToServer(reader);
                                    var errors = salesCopy.Errors;
                                    if (errors.Count > 0)
                                    {
                                        log.ErrorFormat("table:{0}, errors:{1}", Table, errors.Count);
                                        foreach (var er in errors)
                                        {
                                            log.ErrorFormat("table:{0}, msg:{1}", Table, er.ToString());
                                        }
                                    }
                                    salesCopy.Close();

                                    myConn.Close();
                                    conn.Close();
                                }
                            }
                        }
                    }
                }
                log.InfoFormat("{0}: Time elapsed: {1}", Table, DateTime.Now);
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
                Console.WriteLine(String.Format("error: {0} with exception: {1}", Table, ex.Message));
            }
        }
コード例 #6
0
        public override bool Import(DataTable Data, ODAParameter[] Prms)
        {
            DB2BulkCopy   bulkcopy   = null;
            IDbConnection conn       = null;
            DataTable     ImportData = Data.Copy();

            try
            {
                if (this.Transaction == null)
                {
                    conn     = this.GetConnection();
                    bulkcopy = new DB2BulkCopy((DB2Connection)conn);
                }
                else
                {
                    bulkcopy = new DB2BulkCopy((DB2Connection)this.Transaction.Connection, DB2BulkCopyOptions.Default);
                }
                for (int i = 0; i < Prms.Length; i++)
                {
                    if (ImportData.Columns.Contains(Prms[i].ParamsName))
                    {
                        DB2BulkCopyColumnMapping colMap = new DB2BulkCopyColumnMapping(Prms[i].ParamsName, Prms[i].ParamsName);
                        bulkcopy.ColumnMappings.Add(colMap);
                    }
                }
                bulkcopy.BulkCopyTimeout = 600000;
                //需要操作的数据库表名
                bulkcopy.DestinationTableName = ImportData.TableName;
                //将内存表表写入
                bulkcopy.WriteToServer(ImportData);
                return(true);
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                    conn.Dispose();
                }
                if (bulkcopy != null)
                {
                    bulkcopy.Close();
                    bulkcopy = null;
                }
            }
        }
コード例 #7
0
        protected virtual void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            if (disposing)
            {
                if (bulkCopy != null)
                {
                    bulkCopy.Close();
                    bulkCopy = null;
                }
            }
            disposed = true;
        }
コード例 #8
0
        /// <summary>
        /// Bulk copies a set of objects to the server.
        /// </summary>
        /// <param name="connection">The connection to use.</param>
        /// <param name="tableName">The name of the table.</param>
        /// <param name="reader">The reader to read objects from.</param>
        /// <param name="configure">A callback method to configure the bulk copy object.</param>
        /// <param name="options">Options for initializing the bulk copy object.</param>
        /// <param name="transaction">An optional transaction to participate in.</param>
        public override void BulkCopy(IDbConnection connection, string tableName, IDataReader reader, Action <InsightBulkCopy> configure, InsightBulkCopyOptions options, IDbTransaction transaction)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }
            if (transaction != null)
            {
                throw new ArgumentException("DB2Provider does not support external transactions for bulk copy", "transaction");
            }

            DB2BulkCopyOptions db2Options = DB2BulkCopyOptions.Default;

            if (options.HasFlag(InsightBulkCopyOptions.KeepIdentity))
            {
                db2Options |= DB2BulkCopyOptions.KeepIdentity;
            }
            if (options.HasFlag(InsightBulkCopyOptions.TableLock))
            {
                db2Options |= DB2BulkCopyOptions.TableLock;
            }
            if (options.HasFlag(InsightBulkCopyOptions.Truncate))
            {
                db2Options |= DB2BulkCopyOptions.Truncate;
            }

            using (var bulk = new DB2BulkCopy((DB2Connection)connection, db2Options))
                using (var insightBulk = new DB2InsightBulkCopy(bulk))
                {
                    bulk.DestinationTableName = tableName;

                    // map the columns by name, in case we skipped a readonly column
                    foreach (DataRow row in reader.GetSchemaTable().Rows)
                    {
                        bulk.ColumnMappings.Add((string)row["ColumnName"], (string)row["ColumnName"]);
                    }

                    if (configure != null)
                    {
                        configure(insightBulk);
                    }
                    bulk.WriteToServer(reader);
                }
        }
コード例 #9
0
        public static void PushToDatabase(DataTable dt, DB2Connection conn)
        {
            try
            {
                using (DB2BulkCopy bulkCopy = new DB2BulkCopy(conn, DB2BulkCopyOptions.TableLock))
                {
                    bulkCopy.BulkCopyTimeout = 100000000;
                    // bulkCopy.NotifyAfter = 1000;
                    //bulkCopy.DB2RowsCopied += callme;
                    // bulkCopy.DestinationTableName = "DASH11634.NLP_YELP_REVIEWS";
                    bulkCopy.DestinationTableName = "NLP_LANGUAGE_FILTERED_REVIEWS";
                    bulkCopy.WriteToServer(dt);

                    foreach (var error in bulkCopy.Errors)
                    {
                        Console.WriteLine(error);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #10
0
			public DB2InsightBulkCopy(DB2BulkCopy bulkCopy)
			{
				if (bulkCopy == null) throw new ArgumentNullException("bulkCopy");

				_bulkCopy = bulkCopy;
				_bulkCopy.DB2RowsCopied += OnRowsCopied;
			}
コード例 #11
0
		/// <summary>
		/// Bulk copies a set of objects to the server.
		/// </summary>
		/// <param name="connection">The connection to use.</param>
		/// <param name="tableName">The name of the table.</param>
		/// <param name="reader">The reader to read objects from.</param>
		/// <param name="configure">A callback method to configure the bulk copy object.</param>
		/// <param name="options">Options for initializing the bulk copy object.</param>
		/// <param name="transaction">An optional transaction to participate in.</param>
		public override void BulkCopy(IDbConnection connection, string tableName, IDataReader reader, Action<InsightBulkCopy> configure, InsightBulkCopyOptions options, IDbTransaction transaction)
		{
			if (transaction != null)
				throw new ArgumentException("OracleProvider does not support external transactions for bulk copy", "transaction");

			DB2BulkCopyOptions db2Options = DB2BulkCopyOptions.Default;
			if (options.HasFlag(InsightBulkCopyOptions.KeepIdentity))
				db2Options |= DB2BulkCopyOptions.KeepIdentity;
			if (options.HasFlag(InsightBulkCopyOptions.TableLock))
				db2Options |= DB2BulkCopyOptions.TableLock;
			if (options.HasFlag(InsightBulkCopyOptions.Truncate))
				db2Options |= DB2BulkCopyOptions.Truncate;

			using (var bulk = new DB2BulkCopy((DB2Connection)connection, db2Options))
			using (var insightBulk = new DB2InsightBulkCopy(bulk))
			{
				bulk.DestinationTableName = tableName;
				if (configure != null)
					configure(insightBulk);
				bulk.WriteToServer(reader);
			}
		}
コード例 #12
0
		/// <summary>
		/// Bulk copies a set of objects to the server.
		/// </summary>
		/// <param name="connection">The connection to use.</param>
		/// <param name="tableName">The name of the table.</param>
		/// <param name="reader">The reader to read objects from.</param>
		/// <param name="configure">A callback method to configure the bulk copy object.</param>
		/// <param name="options">Options for initializing the bulk copy object.</param>
		/// <param name="transaction">An optional transaction to participate in.</param>
		public override void BulkCopy(IDbConnection connection, string tableName, IDataReader reader, Action<InsightBulkCopy> configure, InsightBulkCopyOptions options, IDbTransaction transaction)
		{
			if (reader == null) throw new ArgumentNullException("reader");
			if (transaction != null)
				throw new ArgumentException("OracleProvider does not support external transactions for bulk copy", "transaction");

			DB2BulkCopyOptions db2Options = DB2BulkCopyOptions.Default;
			if (options.HasFlag(InsightBulkCopyOptions.KeepIdentity))
				db2Options |= DB2BulkCopyOptions.KeepIdentity;
			if (options.HasFlag(InsightBulkCopyOptions.TableLock))
				db2Options |= DB2BulkCopyOptions.TableLock;
			if (options.HasFlag(InsightBulkCopyOptions.Truncate))
				db2Options |= DB2BulkCopyOptions.Truncate;

			using (var bulk = new DB2BulkCopy((DB2Connection)connection, db2Options))
			using (var insightBulk = new DB2InsightBulkCopy(bulk))
			{
				bulk.DestinationTableName = tableName;

				// map the columns by name, in case we skipped a readonly column
				foreach (DataRow row in reader.GetSchemaTable().Rows)
					bulk.ColumnMappings.Add((string)row["ColumnName"], (string)row["ColumnName"]);

				if (configure != null)
					configure(insightBulk);
				bulk.WriteToServer(reader);
			}
		}