internal bool LoadDataInsert(DalType dalType, bool keepID) { bool fillGUID = CheckGUIDAndDateTime(dalType); bool isNeedCreateDal = (_dalHelper == null); if (isNeedCreateDal && dalType != DalType.Oracle) { _dalHelper = DalCreate.CreateDal(_Conn); _dalHelper.isAllowInterWriteLog = false; } string path = MDataTableToFile(mdt, fillGUID ? true : keepID, dalType); string formatSql = dalType == DalType.MySql ? SqlCreate.MySqlBulkCopySql : SqlCreate.OracleBulkCopySql; string sql = string.Format(formatSql, path, SqlFormat.Keyword(mdt.TableName, dalType), AppConst.SplitChar, SqlCreate.GetColumnName(mdt.Columns, keepID, dalType)); if (dalType == DalType.Oracle) { string ctlPath = CreateCTL(sql, path); sql = string.Format(SqlCreate.OracleSqlIDR, "sa/123456@ORCL", ctlPath, ctlPath.Replace(".ctl", ".out"));//只能用进程处理 } try { if (dalType == DalType.Oracle) { return(ExeSqlLoader(sql)); } else { if (_dalHelper.ExeNonQuery(sql, false) != -2) { return(true); } } } catch (Exception err) { if (err.InnerException != null) { err = err.InnerException; } sourceTable.DynamicData = err; Log.WriteLogToTxt(err); } finally { if (isNeedCreateDal && _dalHelper != null) { _dalHelper.Dispose(); _dalHelper = null; } // File.Delete(path); } return(false); }
internal bool MySqlBulkCopyInsert(bool keepID) { bool fillGUID = CheckGUIDAndDateTime(DalType.MySql); string conn = DalCreate.FormatConn(DalType.MySql, AppConfig.GetConn(_Conn)); bool isNeedCreateDal = (_dalHelper == null); if (isNeedCreateDal) { _dalHelper = DalCreate.CreateDal(conn); _dalHelper.isAllowInterWriteLog = false; } string path = MDataTableToFile(mdt, fillGUID ? true : keepID); string sql = string.Format(SqlCreate.MySqlBulkCopySql, path, SqlFormat.Keyword(mdt.TableName, DalType.MySql), AppConst.SplitChar, SqlCreate.GetColumnName(mdt.Columns, keepID, DalType.MySql)); try { if (_dalHelper.ExeNonQuery(sql, false) != -2) { return(true); } } catch (Exception err) { if (err.InnerException != null) { err = err.InnerException; } sourceTable.DynamicData = err; Log.WriteLogToTxt(err); } finally { if (isNeedCreateDal) { _dalHelper.Dispose(); _dalHelper = null; } // File.Delete(path); } return(false); }
internal bool LoadDataInsert(DataBaseType dalType, bool keepid) { bool fillGUID = CheckGUIDAndDateTime(dalType); bool isNeedCreateDal = (_dalHelper == null); if (isNeedCreateDal && dalType != DataBaseType.Oracle) { _dalHelper = DalCreate.CreateDal(_Conn); _dalHelper.IsWriteLogOnError = false; } string path = MDataTableToFile(mdt, fillGUID ? true : keepid, dalType); string formatSql = dalType == DataBaseType.MySql ? SqlCreate.MySqlBulkCopySql : SqlCreate.OracleBulkCopySql; string sql = string.Format(formatSql, path, SqlFormat.Keyword(mdt.TableName, dalType), AppConst.SplitChar, SqlCreate.GetColumnName(mdt.Columns, keepid, dalType)); if (dalType == DataBaseType.Oracle) { string ctlPath = CreateCTL(sql, path); sql = string.Format(SqlCreate.OracleSqlidR, "sa/123456@ORCL", ctlPath);//只能用进程处理 } try { if (dalType == DataBaseType.Oracle) { return(ExeSqlLoader(sql)); } else { bool isGoOn = true; if (IsTruncate) { _dalHelper.IsOpenTrans = true;//开启事务 isGoOn = _dalHelper.ExeNonQuery(string.Format(SqlCreate.TruncateTable, SqlFormat.Keyword(mdt.TableName, dalTypeTo)), false) != -2; } if (isGoOn && _dalHelper.ExeNonQuery(sql, false) != -2) { return(true); } } } catch (Exception err) { if (err.InnerException != null) { err = err.InnerException; } sourceTable.DynamicData = err; Log.Write(err, LogType.DataBase); } finally { if (isNeedCreateDal && _dalHelper != null) { _dalHelper.EndTransaction(); _dalHelper.Dispose(); _dalHelper = null; } IOHelper.Delete(path);//删除文件。 } return(false); }