Пример #1
0
        /// <summary>  
        /// 执行数据库事务查询操作,返回受影响的行数  
        /// </summary>  
        /// <param name="transaction">数据库事务对象</param>  
        /// <param name="cmdType">Command类型</param>  
        /// <param name="cmdText">Oracle存储过程名称或PL/SQL命令</param>  
        /// <param name="commandParameters">命令参数集合</param>  
        /// <returns>当前事务查询操作影响的数据行数</returns>  
        public static int ExecuteNonQuery(OracleTransaction transaction, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
        {
            OracleCommand command = new OracleCommand();
            OracleConnection connection = transaction.Connection;
            int result = 0;

            try
            {
                PrepareCommand(command, connection, transaction, cmdType, cmdText, commandParameters);
                result = command.ExecuteNonQuery();
                command.Parameters.Clear();
            }
            catch
            {
                throw;
            }
            finally
            {
                transaction.Dispose();
                command.Dispose();
                connection.Close();
                connection.Dispose();
            }

            return result;
        }
Пример #2
0
 public static OracleConnection GetConnection()
 {
     if (conn != null) {
         if (conn.State == System.Data.ConnectionState.Open) {
             return conn;
         }
     }
     string DBName = "RA00C000";
     string DBUser = "******";
     string DBPass = "******";
     string[] args = Environment.GetCommandLineArgs();
     if (args.Length > 3) {
         DBName = args[1];
         DBUser = args[2];
         DBPass = args[3];
     }
     oradb = "Data Source=" + DBName + ";User Id=" + DBUser + ";Password="******";";
     try {
         conn = new OracleConnection(oradb);
         conn.Open();
         transaction = conn.BeginTransaction();
         return conn;
     } catch (Exception) {
         return null;
     }
 }
Пример #3
0
 public static void Commit()
 {
     if (conn != null) {
         transaction.Commit();
         transaction = conn.BeginTransaction();
     }
 }
Пример #4
0
 /// <summary>
 /// Execute an OracleCommand (that returns no resultset) against an existing database transaction 
 /// using the provided parameters.
 /// </summary>
 /// <remarks>
 /// e.g.:  
 ///  int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new OracleParameter(":prodid", 24));
 /// </remarks>
 /// <param name="trans">an existing database transaction</param>
 /// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
 /// <param name="commandText">the stored procedure name or PL/SQL command</param>
 /// <param name="commandParameters">an array of OracleParamters used to execute the command</param>
 /// <returns>an int representing the number of rows affected by the command</returns>
 public static int ExecuteNonQuery(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
 {
     OracleCommand cmd = new OracleCommand();
     PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
     int val = cmd.ExecuteNonQuery();
     cmd.Parameters.Clear();
     return val;
 }
        public CT2Repository()
        {
            this.con = ConnectionFactory.GetConnection();

            if (this.con.State != ConnectionState.Open)
                this.con.Open();
            if(usaTransacao)
                this._transaction = this.con.BeginTransaction();
        }
Пример #6
0
 /// <summary>
 /// Connects to the database.
 /// </summary>
 /// <param name="connDetails"></param>
 public SqlRunner(ConnectionDetails connDetails)
 {
     this.connDetails = connDetails;
     string connStr = GetConnectionString();
     log.Info("connecting to [" + connDetails.Name + "] with connection string " + connStr);
     conn = new OracleConnection(connStr);
     conn.Open();
     currentTransaction = conn.BeginTransaction();
 }
        public DataContextTransaction BeginTransaction()
        {
            if (Connection.State == ConnectionState.Closed)
                Connection.Open();

            if (Transaction == null)
                Transaction = Connection.BeginTransaction();

            return this;
        }
		public OracleCustomCommandBuilder( DataTable dataTable, OracleConnection connection, ArrayList columnOracleTypes, OracleTransaction transaction)
		{
			if (dataTable.Columns.Count != columnOracleTypes.Count)
			{
				throw new ArgumentException("Number of OracleTypes does not match number of columns.");
			}
			this.dataTable = dataTable;
			this.connection = connection;
			this.columnOracleTypes = columnOracleTypes;
			this.transaction = transaction;
		}
Пример #9
0
 /// <summary>
 /// Create and execute a command to return a single-row DataReader after binding to multiple parameters.
 /// </summary>
 /// <param name="conn">Connection to execute against. If not open, it will be here.</param>
 /// <param name="trans">ADO transaction.  If null, will not be attached to the command</param>
 /// <param name="cmdType">Type of ADO command; such as Text or Procedure</param>
 /// <param name="cmdText">The actual SQL or the name of the Stored Procedure depending on command type</param>
 /// <param name="cmdParms">An array of OracleParameter objects to bind to the query.</param>
 public static OracleDataReader ExecuteReaderSingleRow(OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter[] cmdParms)
 {
     if (conn.State != ConnectionState.Open)
         conn.Open();
     OracleCommand cmd = new OracleCommand();
     cmd.Connection = conn;
     cmd.CommandText = cmdText;
     PrepareCommand(cmd, cmdParms);
     OracleDataReader rdr = cmd.ExecuteReader(CommandBehavior.SingleRow);
     return rdr;
 }
Пример #10
0
 /// <summary>
 /// Create and execute a command to return DataReader after binding to a single parameter.
 /// </summary>
 /// <param name="conn">Connection to execute against. If not open, it will be here.</param>
 /// <param name="trans">ADO transaction.  If null, will not be attached to the command</param>
 /// <param name="cmdType">Type of ADO command; such as Text or Procedure</param>
 /// <param name="cmdText">The actual SQL or the name of the Stored Procedure depending on command type</param>
 /// <param name="singleParm">The single OracleParameter object to bind to the query.</param>
 public static OracleDataReader ExecuteReaderSingleParm(OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter singleParm)
 {
     OracleCommand cmd = new OracleCommand();
     if (conn.State != ConnectionState.Open)
         conn.Open();
     cmd.Connection = conn;
     cmd.CommandText = cmdText;
     cmd.Parameters.Add(singleParm);
     OracleDataReader rdr = cmd.ExecuteReader(CommandBehavior.SingleResult);
     return rdr;
 }
Пример #11
0
 public static void Rollback()
 {
     if(transaction != null) {
         try {
             transaction.Rollback();
             transaction = conn.BeginTransaction();
         } catch (Exception) {
             // Подавляем исключения.
         }
     }
 }
        public void Dispose()
        {
            if (Transaction != null)
            {
                Transaction.Dispose();
                Transaction = null;
            }

            if (Connection.State != ConnectionState.Closed)
                Connection.Close();
        }
Пример #13
0
        public static void GrabarMatriculaUpdate(ref MatriculaDto mat, ref OracleConnection con, ref OracleTransaction tran)
        {
            var cmdPro = new OracleCommand("PRC_MATRICULA_UPDATE");
             cmdPro.CommandType = CommandType.StoredProcedure;
             cmdPro.Connection = con;

             cmdPro.Parameters.Add(CreateParameter("iMTRID", mat.MtrId));//NUMBER
             cmdPro.Parameters.Add(CreateParameter("iMTRDESCRIPCION", mat.MtrDescripcion, 45));//NUMBER

             cmdPro.Transaction = tran;
             cmdPro.ExecuteNonQuery();//EJECUTO CONSULTA
        }
Пример #14
0
 /// <summary>
 /// 事物提交
 /// </summary>
 public void CommitTrans()
 {
     if (_oracleTran == null)
     {
         throw new NullReferenceException("没有事务可进行提交!");
     }
     else
     {
         _oracleTran.Commit();
         _oracleTran.Dispose();
         _oracleTran = null;
         CloseConn();
     }
 }
        public void RunInTransaction(Action<OracleConnection> callback)
        {
            Boolean closeConnection = connection == null;

            if (null == connection)
            {
                this.connection = new OracleConnection(connectionString);
                this.connection.Open();
            }

            Boolean inDistributedTransaction = null != Transaction.Current;

            if (null == this.transaction && !inDistributedTransaction)
                this.transaction = connection.BeginTransaction();

            try
            {
                if (connection.State == ConnectionState.Closed)
                    this.connection.Open();

                callback(connection);

                if (null != this.transaction && !inDistributedTransaction)
                    this.transaction.Commit();
            }
            catch (Exception)
            {
                if (null != this.transaction)
                    this.transaction.Rollback();

                throw;
            }
            finally
            {
                if (null != this.transaction)
                {
                    this.transaction.Dispose();
                    this.transaction = null;
                }

                if (null != this.connection)
                {
                    this.connection.Close();
                    this.connection.Dispose();
                    this.connection = null;
                }
            }
        }
Пример #16
0
		public OracleDatabaseQuery(
			OracleConnection connection,
			OracleTransaction transaction)
		{
			Contract.Requires(connection != null);

			this.Connection = connection;
			this.ConnectionString = connection.ConnectionString;
			this.Transaction = transaction;
			Queue =
				new Lazy<OracleAQQueue>(() =>
				{
					var q = new OracleAQQueue("\"-NGS-\".NOTIFY_QUEUE", Connection, OracleAQMessageType.Udt, "-NGS-.NOTIFY_INFO_TYPE");
					q.EnqueueOptions.Visibility = OracleAQVisibilityMode.OnCommit;
					q.EnqueueOptions.DeliveryMode = OracleAQMessageDeliveryMode.Persistent;
					return q;
				});
		}
Пример #17
0
        public static void GrabarMatriculaInsert(ref MatriculaDto mat, ref OracleConnection con, ref OracleTransaction tran)
        {
            #region INSERT Matricula del profesional  -------------------------------------------------------------------

            var cmdMat = new OracleCommand("PRC_MATRICULA_INSERT");
            cmdMat.CommandType = CommandType.StoredProcedure;
            cmdMat.Connection = con;

            cmdMat.Parameters.Add(CreateParameter("iMTRDESCRIPCION", mat.MtrDescripcion, 45));//VARCHAR
            cmdMat.Parameters.Add(CreateParameter("iMTR_MTTID", mat.MtrTipo.MttId));//NUMBER
            cmdMat.Parameters.Add(CrearParametroSalida("oMTRID", OracleDbType.Int32));//NUMBER

            cmdMat.Transaction = tran;
            cmdMat.ExecuteNonQuery();

            var varMtrId = cmdMat.Parameters["oMTRID"].Value;
            mat.MtrId = Convert.ToInt16(varMtrId.ToString());

            #endregion
        }
Пример #18
0
        public bool Fill()
        {
            try {
                conn = new OracleConnection(GetConnectionString());
                conn.Open();
                transaction = conn.BeginTransaction();
            } catch (Exception e) {
                MessageBox.Show("При подключении к базе данных произошла ошибка:\n\n" + e.Message);
                conn.Close();
                conn.Dispose();
                return false;
            }

            cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT TO_CHAR(id), l_name from akriko.cat_executors WHERE id in (SELECT distinct(ispolnitel_cik_id) FROM akriko.appeal) ORDER BY UPPER(l_name)";
            try {
                dr = cmd.ExecuteReader();
                while (dr.Read()) {
                    if (dr.IsDBNull(0) || dr.IsDBNull(1)) {
                        MessageBox.Show("При чтении данных из базы данных произошла ошибка:\n\n");
                        break;
                    } else {
                        UsersGrid.Rows.Add();
                        UsersGrid.Rows[UsersGrid.Rows.Count - 1].Cells["executor_id"].Value = dr.GetString(0);
                        UsersGrid.Rows[UsersGrid.Rows.Count - 1].Cells["akriko"].Value = dr.GetString(1);
                    }

                }
                dr.Close();
                dr.Dispose();
            } catch (Exception e) {
                MessageBox.Show("При чтении данных из базы данных произошла ошибка:\n\n" + e.Message);
            }
            if (UsersGrid.Rows.Count == 0) {
                MessageBox.Show("Отсутствуют неотконвертированные исполнители", "Конвертация исполнителей", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ConvertButton.Enabled = false;
            }
            FillDeloDepartmentsColumn();
            return true;
        }
Пример #19
0
           /// <summary>
           /// 为command添加执行内容
           /// </summary>
           /// <param name="cmd">OracleCommand类型</param>
           /// <param name="conn">OracleConnection类型</param>
           /// <param name="trans">OracleTransaction要处理的事物</param>
           /// <param name="cmdType">执行类型(过程/语句)</param>
           /// <param name="cmdText">执行的过程名称/查询语句</param>
           /// <param name="cmdParms">ommand执行的OracleParameter[]数组</param>
           private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter[] cmdParms)
           {
               if (conn.State != ConnectionState.Open)
                   Open(conn);

               cmd.Connection = conn;
               cmd.CommandText = cmdText;

               if (trans != null)
                   cmd.Transaction = trans;

               cmd.CommandType = cmdType;

               if (cmdParms != null)
               {
                   if (cmdParms.Length > 0)
                   {
                       foreach (OracleParameter parm in cmdParms)
                           cmd.Parameters.Add(parm);
                   }
               }
           }
Пример #20
0
        /************************************************************
         * Function name : SetLecturerInfoUpdate
         * Purpose       : 강사 정보 등록
         * Input         : string[] rParams
         * Output        : String Boolean
         *************************************************************/
        public string SetLecturerInfoUpdate(string[] rParams, byte[] rFileRes, string rFileNameRes, byte[] rFileDoc, string rFileNameDoc)
        {
            string xRtn = Boolean.FalseString;

            Database db = base.GetDataBase("LMS");

            OracleConnection xCnnLMS = (OracleConnection)db.CreateConnection();

            xCnnLMS.Open();
            OracleTransaction xTransLMS = null;
            OracleCommand     xCmdLMS   = null;

            try
            {
                xTransLMS           = xCnnLMS.BeginTransaction(); // 트랜잭션 시작
                xCmdLMS             = base.GetSqlCommand(db);
                xCmdLMS.Connection  = xCnnLMS;                    // Command 에 DB 연결
                xCmdLMS.Transaction = xTransLMS;                  // Command 에 트랜잭션 연결

                try
                {
                    string xSql = string.Empty;
                    xSql += " UPDATE t_lecturer SET ";
                    xSql += string.Format(" lecturer_nm = '{0}', ", rParams[1]);        //
                    xSql += string.Format(" lecturer_nm_eng = '{0}', ", rParams[2]);    //

                    if (rParams[3] == null)
                    {
                        xSql += string.Format(" birth_dt = null, ", rParams[3]);
                    }
                    else
                    {
                        xSql += string.Format(" birth_dt = TO_DATE('{0}', 'yyyy.MM.dd'), ", rParams[3]);
                    }

                    xSql += string.Format(" grade = '{0}', ", rParams[4]);              //
                    xSql += string.Format(" user_id = '{0}', ", rParams[5]);            //

                    xSql += string.Format(" job = '{0}', ", rParams[6]);                //
                    xSql += string.Format(" education = '{0}', ", rParams[7]);          //
                    xSql += string.Format(" major = '{0}', ", rParams[8]);              //
                    xSql += string.Format(" org_nm = '{0}', ", rParams[9]);             //
                    xSql += string.Format(" company_nm = '{0}', ", rParams[10]);        //
                    xSql += string.Format(" duty_step = '{0}', ", rParams[11]);         //

                    xSql += string.Format(" zip_code = '{0}', ", rParams[12]);          //
                    xSql += string.Format(" company_addr = '{0}', ", rParams[13]);      //
                    xSql += string.Format(" tel_no = '{0}', ", rParams[14]);            //
                    xSql += string.Format(" mobile_phone = '{0}', ", rParams[15]);      //
                    xSql += string.Format(" email = '{0}', ", rParams[16]);             //

                    xSql += string.Format(" acc_bank = '{0}', ", rParams[17]);          //
                    xSql += string.Format(" account = '{0}', ", rParams[18]);           //
                    //xSql += string.Format(" status = '{0}', ", rParams[19]);            //
                    xSql += string.Format(" upt_id = '{0}', ", rParams[20]);            // 수정자 ID
                    xSql += " upt_dt = SYSDATE ";                                       // 수정일자
                    xSql += string.Format("WHERE lecturer_id = '{0}' ", rParams[0]);    // 강사ID

                    xCmdLMS.CommandText = xSql;
                    base.Execute(db, xCmdLMS, xTransLMS);

                    OracleParameter[] oraParams = null;
                    try
                    {
                        xSql         = @"
                        UPDATE t_lecturer
                           SET RES_FILE_NM = :RES_FILE_NM
                             , RES_FILE = :RES_FILE
                         WHERE lecturer_id = :LECTURER_ID
                        ";
                        oraParams    = new OracleParameter[3];
                        oraParams[0] = base.AddParam("RES_FILE_NM", OracleType.VarChar, rFileNameRes);
                        oraParams[1] = base.AddParam("RES_FILE", OracleType.Blob, rFileRes.Length, rFileRes);
                        oraParams[2] = base.AddParam("LECTURER_ID", OracleType.VarChar, rParams[0]);
                        base.ExecuteScalar("LMS", xSql, oraParams);
                    }
                    catch { }
                    try
                    {
                        xSql         = @"
                        UPDATE t_lecturer
                           SET DOC_FILE_NM1 = :DOC_FILE_NM1
                             , DOC_FILE1 = :DOC_FILE1
                         WHERE lecturer_id = :LECTURER_ID
                        ";
                        oraParams    = new OracleParameter[3];
                        oraParams[0] = base.AddParam("DOC_FILE_NM1", OracleType.VarChar, rFileNameDoc);
                        oraParams[1] = base.AddParam("DOC_FILE1", OracleType.Blob, rFileDoc.Length, rFileDoc);
                        oraParams[2] = base.AddParam("LECTURER_ID", OracleType.VarChar, rParams[0]);
                        base.ExecuteScalar("LMS", xSql, oraParams);
                    }
                    catch { }

                    xRtn = Boolean.TrueString;
                    xTransLMS.Commit(); // 트랜잭션 커밋
                }
                catch (Exception ex)
                {
                    xTransLMS.Rollback(); // Exception 발생시 롤백처리
                    throw ex;
                }
                finally
                {
                    if (xCmdLMS != null)
                    {
                        xCmdLMS.Dispose();
                    }

                    if (xTransLMS != null)
                    {
                        xTransLMS.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, "Propagate Policy");
                if (rethrow)
                {
                    throw;
                }
            }
            return(xRtn);
        }
Пример #21
0
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }
            string[] curupdateDate = hidNewDt.Value.Split(';');
            if (curupdateDate.Length == 0 || hidNewDt.Value == "")
            {
                return;
            }
            using (OracleConnection ConnectionStringJXC = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringJXC"].ConnectionString))
            {
                ConnectionStringJXC.Open();              //打开链接
                OracleCommand cmd = new OracleCommand(); //创建执行类
                cmd.Connection = ConnectionStringJXC;
                OracleTransaction tx = ConnectionStringJXC.BeginTransaction();
                cmd.Transaction = tx;//开启链接事务
                string strSql            = "";
                string strPK_TMP_NC_XSJH = "";
                ///插入销售计划表头信息
                try
                {
                    string[] curRowDate = curupdateDate[0].Split(',');

                    /* strSql = "select PK_TMP_NC_XSJH from  tmp_nc_xsjh where  dr='0' and DBILLDATE='" + curRowDate[9].ToString() + "' and pk_corp='" + log_corp + "'  and  FREE1='" + log_user + "' ";
                     * cmd.CommandText = strSql;
                     * object objPK_TMP_NC_XSJH = cmd.ExecuteOracleScalar();
                     * if (objPK_TMP_NC_XSJH == null)
                     * {*/
                    cmd.CommandText   = "select tmp_nc_xsjh_seq.NextVal from dual ";
                    strPK_TMP_NC_XSJH = cmd.ExecuteOracleScalar().ToString();
                    ////如果不存在插入

                    strSql          = "insert into tmp_nc_xsjh (PK_TMP_NC_XSJH,DBILLDATE,CCUSTOMERID,PK_CORP,DR,VNOTE,";
                    strSql         += " FREE1,FREE2,FREE3,FREE4,FREE5,TS,FLAG,ERRORMESSAGE,VRECEIPTCODE,CUSTCODE,CUSTNAME,CORPNAME)";
                    strSql         += "values('" + strPK_TMP_NC_XSJH + "','" + TextTHRQ.Text + "','" + curRowDate[0].ToString() + "','" + DplTHGC.Items[DplTHGC.SelectedIndex].Value + "',0,'',";
                    strSql         += "'','','','','',to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),'0','','" + createNCYDBH(cmd, TextTHRQ.Text) + "',";
                    strSql         += "'" + curRowDate[1].ToString() + "','" + curRowDate[2].ToString() + "','" + DplTHGC.Items[DplTHGC.SelectedIndex].Text + "')";
                    cmd.CommandText = strSql;
                    int exIn = cmd.ExecuteNonQuery();

                    /*  }
                     * else //更新
                     * {
                     *    strPK_TMP_NC_XSJH = objPK_TMP_NC_XSJH.ToString();
                     *    strSql = "update tmp_nc_xsjh set ts=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') where  dr='0' and DBILLDATE='" + curRowDate[9].ToString() + "' and pk_corp='" + log_corp + "'  and  FREE1='" + log_user + "' ";
                     *    cmd.CommandText = strSql;
                     *    cmd.ExecuteOracleScalar();
                     * } */
                }
                catch (System.Data.OracleClient.OracleException E) {
                    tx.Rollback();
                    MessageBox.ShowAndRedirect(this, "操作销售计划表头信息失败,请联系系统管理员!", "SalesPlan.aspx");
                    return;
                }
                ///插入销售计划表体信息
                try {
                    for (int i = 0; i < curupdateDate.Length; i++)
                    {
                        string[] curRowDate_b        = curupdateDate[i].Split(',');
                        string   strPK_TMP_NC_XSJH_B = "";//销售计划表体ID
                        ///校验物料是否存在,并创建销售计划表体ID
                        try
                        {
                            strPK_TMP_NC_XSJH_B = createPK_XSJH_B(cmd, curRowDate_b[4], TextTHRQ.Text);
                            //if (strPK_TMP_NC_XSJH_B.Substring(0, 4).Equals("exist"))
                            //{
                            //    tx.Rollback();
                            //    MessageBox.ShowAndRedirect(this, "当前物料:"+curRowDate_b[7].ToString()+"已经存在,请返回计划列表直接修改!", "SalesPlan.aspx");
                            //    return ;
                            //}
                        }
                        catch (System.Data.OracleClient.OracleException E)
                        {
                            tx.Rollback();
                            MessageBox.ShowAndRedirect(this, "创建销售表体ID失败,请联系系统管理员!", "SalesPlan.aspx");
                            return;
                        }
                        ///插入销售计划表体ID
                        strSql          = " insert into tmp_nc_xsjh_b (PK_TMP_NC_XSJH_B,PK_TMP_NC_XSJH,BLARGESSFLAG,CINVBASDOCID,CINVENTORYID,FROWNOTE,DR";
                        strSql         += " ,FREE1,FREE2,FREE3,FREE4,FREE5,TS,NUM,INVNAME,UNITWEIGHT)";
                        strSql         += "values('" + strPK_TMP_NC_XSJH_B + "','" + strPK_TMP_NC_XSJH + "','N','" + curRowDate_b[3].ToString() + "','" + curRowDate_b[4].ToString() + "','','0',";
                        strSql         += "'','','','','',to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')," + curRowDate_b[6].ToString() + ",'" + curRowDate_b[5].ToString() + "'," + curRowDate_b[7].ToString() + ")";
                        cmd.CommandText = strSql;
                        int exIn = cmd.ExecuteNonQuery();
                    }
                    tx.Commit();
                }
                catch (System.Data.OracleClient.OracleException E)
                {
                    tx.Rollback();
                    MessageBox.ShowAndRedirect(this, "插入销售计划表头信息失败,请联系系统管理员!", "SalesPlan.aspx");
                    return;
                }


                ConnectionStringJXC.Close();
                BindSalesList();
                //MessageBox.ShowAndRedirect(this, "保存操作成功!", "SalesPlan.aspx");
            }
        }
        /// <summary>
        /// 针对 SQL 列表的命令准备函数
        /// </summary>
        /// <param name="objCommand">执行命令</param>
        /// <param name="objConnection">数据库连接</param>
        /// <param name="objTransaction">事务</param>
        /// <param name="strCommandType">命令类型</param>
        /// <param name="strCommandText">命令体列表</param>
        private static void ExecuteListCommand(OracleCommand objCommand, OracleConnection objConnection, OracleTransaction objTransaction, CommandType strCommandType, string[] strCommandTextList)
        {
            objCommand.CommandType = strCommandType;
            objCommand.Connection  = objConnection;

            if (objTransaction != null)
            {
                objCommand.Transaction = objTransaction;
            }

            foreach (string strCommandText in strCommandTextList)
            {
                //石磊添加 对于null 和 ""的判断规则
                if (null == strCommandText || strCommandText.Trim() == "")
                {
                    continue;
                }
                objCommand.CommandText = strCommandText;
                objCommand.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// 命令准备
        /// </summary>
        /// <param name="objCommand">命令</param>
        /// <param name="objConnection">连接</param>
        /// <param name="objTransaction">事务</param>
        /// <param name="strCommandType">命令类型</param>
        /// <param name="strCommandText">命令明细</param>
        private static void PrepareCommand(OracleCommand objCommand, OracleConnection objConnection, OracleTransaction objTransaction, CommandType strCommandType, string strCommandText)
        {
            if (objConnection.State != ConnectionState.Open)
            {
                objConnection.Open();
            }

            objCommand.Connection  = objConnection;
            objCommand.CommandText = strCommandText;

            if (objTransaction != null)
            {
                objCommand.Transaction = objTransaction;
            }

            objCommand.CommandType = strCommandType;
        }
Пример #24
0
        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>
        public static bool ExecuteSqlTran(string conStr, List <CommandInfo> cmdList)
        {
            using (OracleConnection conn = new OracleConnection(conStr))
            {
                conn.Open();
                OracleCommand cmd = new OracleCommand();
                cmd.Connection = conn;
                OracleTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    foreach (CommandInfo c in cmdList)
                    {
                        if (!String.IsNullOrEmpty(c.CommandText))
                        {
                            PrepareCommand(cmd, conn, tx, CommandType.Text, c.CommandText, (OracleParameter[])c.Parameters);
                            if (c.EffentNextType == EffentNextType.WhenHaveContine || c.EffentNextType == EffentNextType.WhenNoHaveContine)
                            {
                                if (c.CommandText.ToLower().IndexOf("count(") == -1)
                                {
                                    tx.Rollback();
                                    throw new Exception("Oracle:违背要求" + c.CommandText + "必须符合select count(..的格式");
                                    //return false;
                                }

                                object obj    = cmd.ExecuteScalar();
                                bool   isHave = false;
                                if (obj == null && obj == DBNull.Value)
                                {
                                    isHave = false;
                                }
                                isHave = Convert.ToInt32(obj) > 0;

                                if (c.EffentNextType == EffentNextType.WhenHaveContine && !isHave)
                                {
                                    tx.Rollback();
                                    throw new Exception("Oracle:违背要求" + c.CommandText + "返回值必须大于0");
                                    //return false;
                                }
                                if (c.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)
                                {
                                    tx.Rollback();
                                    throw new Exception("Oracle:违背要求" + c.CommandText + "返回值必须等于0");
                                    //eturn false;
                                }
                                continue;
                            }
                            int res = cmd.ExecuteNonQuery();
                            if (c.EffentNextType == EffentNextType.ExcuteEffectRows && res == 0)
                            {
                                tx.Rollback();
                                throw new Exception("Oracle:违背要求" + c.CommandText + "必须有影像行");
                                // return false;
                            }
                        }
                    }
                    tx.Commit();
                    return(true);
                }
                catch (System.Data.OracleClient.OracleException E)
                {
                    tx.Rollback();
                    throw E;
                }
                finally
                {
                    if (conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                    }
                }
            }
        }
Пример #25
0
 /// <summary>
 /// Performs CRUD row update. Override to do custom update
 /// </summary>
 protected internal async override Task <int> DoUpdateAsync(OracleConnection cnn, OracleTransaction transaction, Doc row, IDataStoreKey key = null, FieldFilterFunc filter = null)
 {
     CheckReadOnly(row.Schema, "update");
     return(await CRUDGenerator.CRUDUpdate(this, cnn, transaction, row, key, filter));
 }
        public static bool AddEditCaseCheckList(List <ATTCaseCheckList> CaseCheckListLST, OracleTransaction Tran, double caseID)
        {
            string InsertUpdateSQL = "";
            List <OracleParameter> paramArray;

            try
            {
                foreach (ATTCaseCheckList obj in CaseCheckListLST)
                {
                    if (obj.Action == "A")
                    {
                        InsertUpdateSQL = "SP_ADD_CASE_CHECKLIST";
                    }
                    else if (obj.Action == "E")
                    {
                        InsertUpdateSQL = "SP_EDIT_CASE_CHECKLIST";
                    }

                    paramArray = new List <OracleParameter>();


                    paramArray.Add(Utilities.GetOraParam("P_CASE_ID", caseID, OracleDbType.Double, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_ORG_ID", obj.OrgID, OracleDbType.Int32, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_CASE_TYPE_ID", obj.CaseTypeID, OracleDbType.Int32, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_REG_TYPE_ID", obj.RegTypeID, OracleDbType.Int32, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_CHECK_LIST_ID", obj.CheckListID, OracleDbType.Int32, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_FULL_FILLED", obj.FulFilled, OracleDbType.Varchar2, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_REMARKS", obj.Remarks, OracleDbType.Varchar2, ParameterDirection.Input));
                    paramArray.Add(Utilities.GetOraParam("P_ENTRY_BY", obj.EntryBy, OracleDbType.Varchar2, ParameterDirection.Input));

                    SqlHelper.ExecuteNonQuery(Tran, CommandType.StoredProcedure, InsertUpdateSQL, paramArray.ToArray());
                }



                return(true);
            }
            catch (Exception ex)
            {
                Tran.Rollback();
                throw ex;
            }
        }
Пример #27
0
        public int Insert(Konyvek record)
        {
            OracleConnection oc = GetOracleConnection();

            oc.Open();

            OracleTransaction ot = oc.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);

            OracleCommand command = new OracleCommand()
            {
                CommandType = System.Data.CommandType.StoredProcedure,
                CommandText = "spInsert_konyvek"
            };

            OracleParameter cimParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_cim",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Cim
            };

            command.Parameters.Add(cimParameter);

            OracleParameter szerzoParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_szerzo",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Szerzo
            };

            command.Parameters.Add(szerzoParameter);

            OracleParameter kiadoParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_kiado",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Kiado
            };

            command.Parameters.Add(kiadoParameter);

            OracleParameter kiadas_eveParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_kiadas_eve",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Kiadas_eve
            };

            command.Parameters.Add(kiadas_eveParameter);

            OracleParameter isbn_azonositoParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_isbn_azonosito",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Isbn_azonosito
            };

            command.Parameters.Add(isbn_azonositoParameter);

            OracleParameter nyelvParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_nyelv",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Nyelv
            };

            command.Parameters.Add(nyelvParameter);

            OracleParameter kategoriaParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.String,
                ParameterName = ":p_kategoria",
                Direction     = System.Data.ParameterDirection.Input,
                Value         = record.Kategoria
            };

            command.Parameters.Add(kategoriaParameter);

            OracleParameter rowcountParameter = new OracleParameter()
            {
                DbType        = System.Data.DbType.Int32,
                ParameterName = "p_out_rowcnt",
                Direction     = System.Data.ParameterDirection.Output
            };

            command.Connection  = oc;
            command.Transaction = ot;

            try
            {
                command.ExecuteNonQuery();
                int affectedRows = int.Parse(rowcountParameter.Value.ToString());
                ot.Commit();
                return(affectedRows);
            }
            catch (Exception)
            {
                ot.Rollback();
                return(0);
            }
        }
Пример #28
0
        /// <summary>
        /// Apply the given changeset.
        /// </summary>
        /// <param name="change_set"></param>
        public override void ApplyChange(ChangeSet change_set)
        {
            if (change_set != null && change_set.Changes != null)
            {
                foreach (Change change in change_set.Changes)
                {
                    switch (change.Type)
                    {
                    case ChangeType.Create:
                        foreach (OsmGeo geo in change.OsmGeo)
                        {
                            // start applying the simplechange.
                            OracleTransaction trans = _connection.BeginTransaction();
                            try
                            {
                                if (geo is Node)
                                {
                                    this.Create(geo as Node);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "+(n:{0})", geo.Id.Value);
                                }
                                else if (geo is Way)
                                {
                                    this.Create(geo as Way);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "+(w:{0})", geo.Id.Value);
                                }
                                else if (geo is Relation)
                                {
                                    this.Create(geo as Relation);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "+(r:{0})", geo.Id.Value);
                                }
                                trans.Commit();
                            }
                            catch (OracleException ex)
                            {
                                trans.Rollback();
                                if (!_pragmatic)
                                {
                                    throw ex;
                                }
                                else
                                {
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "+(E:{0}-{1})", geo.Id.Value, geo.Type.ToString());
                                }
                            }
                        }
                        break;

                    case ChangeType.Delete:
                        foreach (OsmGeo geo in change.OsmGeo)
                        {
                            // start applying the simplechange.
                            OracleTransaction trans = _connection.BeginTransaction();
                            try
                            {
                                if (geo is Node)
                                {
                                    this.Delete(geo as Node);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "-(n:{0})", geo.Id.Value);
                                }
                                else if (geo is Way)
                                {
                                    this.Delete(geo as Way);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "-(w:{0})", geo.Id.Value);
                                }
                                else if (geo is Relation)
                                {
                                    this.Delete(geo as Relation);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "-(r:{0})", geo.Id.Value);
                                }
                                trans.Commit();
                            }
                            catch (OracleException ex)
                            {
                                trans.Rollback();
                                if (!_pragmatic)
                                {
                                    throw ex;
                                }
                                else
                                {
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "-(E:{0}-{1})", geo.Id.Value, geo.Type.ToString());
                                }
                            }
                        }
                        break;

                    case ChangeType.Modify:
                        foreach (OsmGeo geo in change.OsmGeo)
                        {
                            // start applying the simplechange.
                            OracleTransaction trans = _connection.BeginTransaction();
                            try
                            {
                                if (geo is Node)
                                {
                                    this.Modify(geo as Node);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "/(n:{0})", geo.Id.Value);
                                }
                                else if (geo is Way)
                                {
                                    this.Modify(geo as Way);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "/(w:{0})", geo.Id.Value);
                                }
                                else if (geo is Relation)
                                {
                                    this.Modify(geo as Relation);
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "/(r:{0})", geo.Id.Value);
                                }
                                trans.Commit();
                            }
                            catch (OracleException ex)
                            {
                                trans.Rollback();
                                if (!_pragmatic)
                                {
                                    throw ex;
                                }
                                else
                                {
                                    OsmSharp.Logging.Log.TraceEvent("OsmSharp.Data.Oracle.Osm.Streams.OracleOsmChangesetStreamTarget", System.Diagnostics.TraceEventType.Information,
                                                                    "/(E:{0}-{1})", geo.Id.Value, geo.Type.ToString());
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
Пример #29
0
    public bool ExecSqls(List <string> sqls, List <List <object> > parametreDegerleri, bool transacted)
    {
        /*  Örnek Kullanım:
         *  Sqllerde parametre isimleri param1, param2 .. şeklinde tanımlanmalıdır
         *
         *  DB db = new DB();
         *
         *  string sql1 = "INSERT INTO TABLO_ADI_1 VALUES(:param1, 'birşey', :param2, 'başkabirşey', :param3)";
         *  string sql2 = "INSERT INTO TABLO_ADI_2 VALUES(:param1, :param2)";
         *  string sql3 = "INSERT INTO TABLO_ADI_3 VALUES('bir şey','başka bir şey')";
         *  string sql4 = "DELETE TABLO_ADI_4 WHERE ALAN_ADI = :param1";
         *  string sql5 = "UPDATE TABLO_ADI_5 SET ALAN_ADI_1 = :param1 WHERE ALAN_ADI_2 < :param2 ";
         *
         *  List<string> sqls = new List<string>();
         *  sqls.Add(sql1);
         *  sqls.Add(sql2);
         *  sqls.Add(sql3);
         *  sqls.Add(sql4);
         *  sqls.Add(sql5);
         *
         *  List<List<object>> parameters = new List<List<object>>();
         *  parameters.Add(new List<object>() { "DEGER1", "DEGER2", 100 });
         *  parameters.Add(new List<object>() { "DEGER1", DateTime.Now });
         *  parameters.Add(null);
         *  parameters.Add(new List<object>() { "DEGER1" });
         *  parameters.Add(new List<object>() { "DEGER1", 30 });
         *
         *  bool basari = db.ExecSqls(sqls, parameters, true);
         */

        bool basari = true;

        if (parametreDegerleri == null)
        {
            Fonksiyonlar     f    = new Fonksiyonlar();
            OracleConnection conn = new OracleConnection(this.GetConnectionString());

            if (transacted)
            {
                OracleTransaction transaction = null;

                try
                {
                    conn.Open();
                    transaction = conn.BeginTransaction();

                    foreach (string sql in sqls)
                    {
                        OracleCommand cmd = new OracleCommand(sql, conn, transaction);
                        cmd.ExecuteNonQuery();
                    }

                    transaction.Commit();
                }
                catch (OracleException oex)
                {
                    basari = false;
                    f.LogYazTxt("ExecSqls()", oex.StackTrace, oex.Message);
                    transaction.Rollback();
                }
                catch (Exception ex)
                {
                    basari = false;
                    f.LogYazTxt("ExecSqls()", ex.StackTrace, ex.Message);
                    transaction.Rollback();
                }
                finally
                {
                    if (conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }
            }
            else
            {
                try
                {
                    conn.Open();

                    foreach (string sql in sqls)
                    {
                        OracleCommand cmd = new OracleCommand(sql, conn);
                        cmd.ExecuteNonQuery();
                    }
                }
                catch (OracleException oex)
                {
                    basari = false;
                    f.LogYazTxt("ExecSqls()", oex.StackTrace, oex.Message);
                }
                catch (Exception ex)
                {
                    basari = false;
                    f.LogYazTxt("ExecSqls()", ex.StackTrace, ex.Message);
                }
                finally
                {
                    if (conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }
            }
        }
        else
        {
            List <OracleCommand> cmds = new List <OracleCommand>();
            for (int sqlNo = 0; sqlNo < sqls.Count; sqlNo++)
            {
                cmds.Add(new OracleCommand(sqls[sqlNo]));
                if (parametreDegerleri[sqlNo] != null)
                {
                    for (int paramNo = 0; paramNo < parametreDegerleri[sqlNo].Count; paramNo++)
                    {
                        cmds[sqlNo].Parameters.AddWithValue("param" + (paramNo + 1).ToString(), parametreDegerleri[sqlNo][paramNo]);
                    }
                }
            }

            basari = this.ExecCmds(cmds, transacted);
        }

        return(basari);
    }
Пример #30
0
        public static void CerrarConexionesCmd(ref OracleCommand cmd, bool blnCommit = false, bool blnRollback = false)
        {
            OracleTransaction tra = null;

            CerrarConexiones(ref cmd, ref tra, blnCommit, blnRollback);
        }
Пример #31
0
 private void PrepareCommand(OracleCommand command, OracleConnection connection, OracleTransaction transaction, CommandType commandType, string commandText, OracleParameter[] commandParameters, ref bool mustCloseConnection)
 {
     if ((command == null))
     {
         throw new ArgumentNullException("command");
     }
     if (string.IsNullOrEmpty(commandText))
     {
         throw new ArgumentNullException("commandText");
     }
     if (connection.State != ConnectionState.Open)
     {
         connection.Open();
         mustCloseConnection = true;
     }
     else
     {
         mustCloseConnection = false;
     }
     command.Connection  = connection;
     command.CommandText = commandText;
     if (transaction != null)
     {
         if (transaction.Connection == null)
         {
             throw new ArgumentException("The transaction was rollbacked or commited, please provide an open transaction.", "transaction");
         }
         command.Transaction = transaction;
     }
     command.CommandType = commandType;
     if (commandParameters != null)
     {
         AttachParameters(command, commandParameters);
     }
     return;
 }
        public static bool SaveAttachments(List <ATTPersonAttachments> LstAttachments, OracleTransaction Tran, double empid)
        {
            //GetConnection conn = new GetConnection();
            //OracleConnection dbconn = conn.GetDbConn(Module.PMS);
            string InsertSQL = "";

            try
            {
                foreach (ATTPersonAttachments obj in LstAttachments)
                {
                    if (obj.Action == "A")
                    {
                        InsertSQL = "SP_ADD_EMP_ATTACHMENTS";
                    }
                    else if (obj.Action == "E")
                    {
                        InsertSQL = "SP_EDIT_EMP_ATTACHMENTS";
                    }
                    if (obj.Action == "A" || obj.Action == "E")
                    {
                        OracleParameter[] paramArray = new OracleParameter[7];
                        paramArray[0] = Utilities.GetOraParam("P_EMP_ID", empid, OracleDbType.Double, ParameterDirection.Input);
                        paramArray[1] = Utilities.GetOraParam("P_ATT_SEQ", obj.AttSeq, OracleDbType.Int32, ParameterDirection.InputOutput);
                        paramArray[2] = Utilities.GetOraParam("P_ATT_DATE", obj.AttachmentDate, OracleDbType.Varchar2, ParameterDirection.Input);
                        paramArray[3] = Utilities.GetOraParam("P_ATT_SUBJECT", obj.AttachmentTitle, OracleDbType.Varchar2, ParameterDirection.Input);
                        paramArray[4] = Utilities.GetOraParam("P_ATT_CONTENT", obj.AttachmentDocs, OracleDbType.Blob, ParameterDirection.Input);
                        paramArray[5] = Utilities.GetOraParam("P_ATT_REMARKS", obj.AttachmentDesc, OracleDbType.Varchar2, ParameterDirection.Input);
                        paramArray[6] = Utilities.GetOraParam("P_ENTRY_BY", obj.EntryBy, OracleDbType.Varchar2, ParameterDirection.Input);

                        SqlHelper.ExecuteNonQuery(Tran, CommandType.StoredProcedure, InsertSQL, paramArray);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(true);
        }
Пример #33
0
 public TransactedOracleConnection(string connectionString)
 {
     OracleConnection = new OracleConnection(connectionString);
     OracleConnection.Open();
     Transaction = OracleConnection.BeginTransaction();
 }
Пример #34
0
 private void ReleaseTransaction()
 {
     oTransaction.Dispose();
     oTransaction = null;
 }
Пример #35
0
        public bool BeginTransaction(String _sConnectionName)
        {
            Hashtable hConnectionInfo;
            int       nDBProvider;

            if (_sConnectionName == null)
            {
                return(false);
            }

            if (_sConnectionName.Trim().Length == 0)
            {
                return(false);
            }

            if (!ConnectionNameExist(_sConnectionName))
            {
                return(false);
            }

            if (!IsConnectionOpen(_sConnectionName))
            {
                OpenConnection(_sConnectionName);
            }

            hConnectionInfo = GetConnectionInfo(_sConnectionName);
            // Don't start another transaction if one has already started....
            if (((Object)hConnectionInfo["TransactionObject"]) != null)
            {
                return(false);
            }

            nDBProvider = Convert.ToInt32((String)hConnectionInfo["DBProvider"]);
            try
            {
                DataBaseException = "";
                if (nDBProvider == DB_MYSQL)
                {
                    MySqlConnection  mysqlConnection  = (MySqlConnection)hConnectionInfo["ConnectionObject"];
                    MySqlTransaction mysqlTransaction = mysqlConnection.BeginTransaction(IsolationLevel.ReadCommitted);
                    SetHashProperty(hConnectionInfo, "TransactionObject", mysqlTransaction);
                }
                if (nDBProvider == DB_ORACLE)
                {
                    OracleConnection  oracleConnection  = (OracleConnection)hConnectionInfo["ConnectionObject"];
                    OracleTransaction oracleTransaction = oracleConnection.BeginTransaction(IsolationLevel.ReadCommitted);
                    SetHashProperty(hConnectionInfo, "TransactionObject", oracleTransaction);
                }
                if (nDBProvider == DB_SQLSERVER)
                {
                    SqlConnection  sqlserverConnection  = (SqlConnection)hConnectionInfo["ConnectionObject"];
                    SqlTransaction sqlserverTransaction = sqlserverConnection.BeginTransaction(IsolationLevel.ReadCommitted);
                    SetHashProperty(hConnectionInfo, "TransactionObject", sqlserverTransaction);
                }
            }
            catch (Exception eException)
            {
                ErrorException    = eException;
                DataBaseException = ErrorException.Message;
                return(false);
            }
            return(true);
        }
Пример #36
0
		/// <summary>
		/// Execute an OracleCommand (that returns a resultset) against the specified OracleTransaction
		/// using the provided parameters.
		/// </summary>
		/// <remarks>
		/// e.g.:  
		///  DataSet ds = ExecuteDataset(trans, CommandType.StoredProcedure, "GetOrders", new OracleParameter("@prodid", 24));
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param> 
		/// <param name="commandParameters">an array of OracleParameters used to execute the command</param>
		/// <returns>a dataset containing the resultset generated by the command</returns>
		public static DataSet ExecuteDataset(OracleTransaction transaction, CommandType commandType, string commandText, params OracleParameter[] commandParameters)
		{
			//create a command and prepare it for execution
			OracleCommand cmd = new OracleCommand();
			PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);
			
			//create the DataAdapter & DataSet
			OracleDataAdapter da = new OracleDataAdapter(cmd);
			DataSet ds = new DataSet();

			//fill the DataSet using default values for DataTable names, etc.
			da.Fill(ds);
			
			//return the dataset
			return ds;
		}
Пример #37
0
    public bool ExecCmds(List <OracleCommand> cmds, bool transacted)
    {
        bool             basari = true;
        Fonksiyonlar     f      = new Fonksiyonlar();
        OracleConnection conn   = new OracleConnection(this.GetConnectionString());

        if (transacted)
        {
            OracleTransaction transaction = null;

            try
            {
                conn.Open();
                transaction = conn.BeginTransaction();

                foreach (OracleCommand cmd in cmds)
                {
                    cmd.Connection  = conn;
                    cmd.Transaction = transaction;
                    cmd.ExecuteNonQuery();
                }

                transaction.Commit();
            }
            catch (OracleException oex)
            {
                basari = false;
                f.LogYazTxt("ExecCmds()", oex.StackTrace, oex.Message);
                transaction.Rollback();
            }
            catch (Exception ex)
            {
                basari = false;
                f.LogYazTxt("ExecCmds()", ex.StackTrace, ex.Message);
                transaction.Rollback();
            }
            finally
            {
                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
        else
        {
            try
            {
                conn.Open();

                foreach (OracleCommand cmd in cmds)
                {
                    cmd.Connection = conn;
                    cmd.ExecuteNonQuery();
                }
            }
            catch (OracleException oex)
            {
                basari = false;
                f.LogYazTxt("ExecCmds()", oex.StackTrace, oex.Message);
            }
            catch (Exception ex)
            {
                basari = false;
                f.LogYazTxt("ExecCmds()", ex.StackTrace, ex.Message);
            }
            finally
            {
                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }

        return(basari);
    }
Пример #38
0
		/// <summary>
		/// Create and prepare an OracleCommand, and call ExecuteReader with the appropriate CommandBehavior.
		/// </summary>
		/// <remarks>
		/// If we created and opened the connection, we want the connection to be closed when the DataReader is closed.
		/// 
		/// If the caller provided the connection, we want to leave it to them to manage.
		/// </remarks>
		/// <param name="connection">a valid OracleConnection, on which to execute this command</param>
		/// <param name="transaction">a valid OracleTransaction, or 'null'</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param> 
		/// <param name="commandParameters">an array of OracleParameters to be associated with the command or 'null' if no parameters are required</param>
		/// <param name="connectionOwnership">indicates whether the connection parameter was provided by the caller, or created by OracleHelper</param>
		/// <returns>OracleDataReader containing the results of the command</returns>
		private static OracleDataReader ExecuteReader(OracleConnection connection, OracleTransaction transaction, CommandType commandType, string commandText, OracleParameter[] commandParameters, OracleConnectionOwnership connectionOwnership)
		{	
			//create a command and prepare it for execution
			OracleCommand cmd = new OracleCommand();
			PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters);
			
			//create a reader
			OracleDataReader dr;

			// call ExecuteReader with the appropriate CommandBehavior
			if (connectionOwnership == OracleConnectionOwnership.External)
			{
				dr = cmd.ExecuteReader();
			}
			else
			{
				dr = cmd.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
			}

			return (OracleDataReader) dr;
		}
 public OracleScopeInfoBuilder(DbConnection connection, DbTransaction transaction)
 {
     this.connection  = connection as OracleConnection;
     this.transaction = transaction as OracleTransaction;
 }
Пример #40
0
		/// <summary>
		/// Execute an OracleCommand (that returns a resultset) against the specified OracleTransaction
		/// using the provided parameters.
		/// </summary>
		/// <remarks>
		/// e.g.:  
		///   OracleDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders", new OracleParameter("@prodid", 24));
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param> 
		/// <param name="commandParameters">an array of OracleParameters used to execute the command</param>
		/// <returns>an OracleDataReader containing the resultset generated by the command</returns>
		public static OracleDataReader ExecuteReader(OracleTransaction transaction, CommandType commandType, string commandText, params OracleParameter[] commandParameters)
		{
			//pass through to private overload, indicating that the connection is owned by the caller
			return ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, OracleConnectionOwnership.External);
		}
Пример #41
0
 /**
  * 开始事务
  * */
 public void beginTrans()
 {
     this.openConn();
     this.isTrans = true;
     this.trans   = this.conn.BeginTransaction();
 }
Пример #42
0
		/// <summary>
		/// This method opens (if necessary) and assigns a connection, transaction, command type and parameters 
		/// to the provided command.
		/// </summary>
		/// <param name="command">the OracleCommand to be prepared</param>
		/// <param name="connection">a valid OracleConnection, on which to execute this command</param>
		/// <param name="transaction">a valid OracleTransaction, or 'null'</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param> 
		/// <param name="commandParameters">an array of OracleParameters to be associated with the command or 'null' if no parameters are required</param>
		private static void PrepareCommand(OracleCommand command, OracleConnection connection, OracleTransaction transaction, CommandType commandType, string commandText, OracleParameter[] commandParameters)
		{
			//if the provided connection is not open, we will open it
			if (connection.State != ConnectionState.Open)
			{
				connection.Open();
			}

			//associate the connection with the command
			command.Connection = connection;

			//set the command text (stored procedure name or Oracle statement)
			command.CommandText = commandText;

			//if we were provided a transaction, assign it.
			if (transaction != null)
			{
				command.Transaction = transaction;
			}

			//set the command type
			command.CommandType = commandType;

			//attach the command parameters if they are provided
			if (commandParameters != null)
			{
				AttachParameters(command, commandParameters);
			}

			return;
		}
 public OracleBulkCopy(OracleConnection connection, OracleTransaction transation = null)
 {
     this._connection          = connection;
     this._externalTransaction = transation;
 }
        /// <summary>
        /// Starts a new ADO.NET transaction using the open connection object of this class.
        /// Opens the connection if it isn't already open.
        /// No nesting allowed, throws exception if the transaction is already pending.
        /// </summary>
        /// <param name="isolationLevel">The transaction isolation level.</param>
        public void BeginTransaction(IsolationLevel isolationLevel)
        {
            if (this.isTransactionPending)
                throw new InvalidOperationException(Messages.ConnectionProvider_TranAlreadyPending);

            if (!IsOpen)
                OpenConnection();

            this.oraTran = this.oraConn.BeginTransaction(isolationLevel);
            this.isTransactionPending = true;
        }
Пример #45
0
 /// <summary>
 /// Performs CRUD row deletion. Override to do custom deletion
 /// </summary>
 protected internal async override Task <int> DoDeleteAsync(OracleConnection cnn, OracleTransaction transaction, Doc row, IDataStoreKey key = null)
 {
     CheckReadOnly(row.Schema, "delete");
     return(await CRUDGenerator.CRUDDelete(this, cnn, transaction, row, key));
 }
Пример #46
0
        /************************************************************
         * Function name : SetLecturerInfo
         * Purpose       : 강사 정보 등록
         * Input         : string[] rParams
         * Output        : String Boolean
         *************************************************************/
        public string SetLecturerInfo(string[] rParams, byte[] rFileRes, string rFileNameRes, byte[] rFileDoc, string rFileNameDoc)
        {
            string xRtn = Boolean.FalseString;

            Database db = base.GetDataBase("LMS");

            OracleConnection xCnnLMS = (OracleConnection)db.CreateConnection();

            xCnnLMS.Open();
            OracleTransaction xTransLMS = null;
            OracleCommand     xCmdLMS   = null;

            try
            {
                xTransLMS           = xCnnLMS.BeginTransaction(); // 트랜잭션 시작
                xCmdLMS             = base.GetSqlCommand(db);
                xCmdLMS.Connection  = xCnnLMS;                    // Command 에 DB 연결
                xCmdLMS.Transaction = xTransLMS;                  // Command 에 트랜잭션 연결


                try
                {
                    string xSql = string.Empty;
                    xSql += "INSERT INTO t_lecturer (lecturer_id, ";    // 강사ID
                    xSql += " lecturer_nm, ";                           // 강사명
                    xSql += " lecturer_nm_eng, ";                       // 강사영문명
                    xSql += " birth_dt, ";                              // 생년월일
                    xSql += " grade, ";                                 // 강사등급(A,B,C,D)
                    xSql += " user_id, ";                               // 사용자ID

                    xSql += " job, ";                                   // 직업
                    xSql += " education, ";                             // 학력
                    xSql += " major, ";                                 // 전공
                    xSql += " org_nm, ";                                // 소속구분
                    xSql += " company_nm, ";                            // 회사명
                    xSql += " duty_step, ";                             // 직위

                    xSql += " zip_code, ";                              // 우편번호
                    xSql += " company_addr, ";                          // 주소
                    xSql += " tel_no, ";                                // 전화번호
                    xSql += " mobile_phone, ";                          // 휴대폰번호
                    xSql += " email, ";                                 // 이메일

                    xSql += " acc_bank, ";                              // 은행코드
                    xSql += " account, ";                               // 계좌번호
                    xSql += " status, ";                                // 상태

                    xSql += " ins_id, ";                                // 작성자 ID
                    xSql += " ins_dt, ";                                // 작성일자
                    xSql += " upt_id, ";                                // 수정자 ID
                    xSql += " upt_dt) ";                                // 수정일자
                    xSql += string.Format(" VALUES ( '{0}', ", rParams[0]);
                    xSql += string.Format("'{0}', ", rParams[1]);
                    xSql += string.Format("'{0}', ", rParams[2]);

                    if (rParams[3] == null)
                    {
                        xSql += string.Format(" null, ", rParams[3]);
                    }
                    else
                    {
                        xSql += string.Format(" TO_DATE('{0}', 'yyyy.MM.dd'), ", rParams[3]);
                    }

                    xSql += string.Format("'{0}', ", rParams[4]);
                    xSql += string.Format("'{0}', ", rParams[5]);

                    xSql += string.Format("'{0}', ", rParams[6]);
                    xSql += string.Format("'{0}', ", rParams[7]);
                    xSql += string.Format("'{0}', ", rParams[8]);
                    xSql += string.Format("'{0}', ", rParams[9]);
                    xSql += string.Format("'{0}', ", rParams[10]);
                    xSql += string.Format("'{0}', ", rParams[11]);

                    xSql += string.Format("'{0}', ", rParams[12]);
                    xSql += string.Format("'{0}', ", rParams[13]);
                    xSql += string.Format("'{0}', ", rParams[14]);
                    xSql += string.Format("'{0}', ", rParams[15]);
                    xSql += string.Format("'{0}', ", rParams[16]);

                    xSql += string.Format("'{0}', ", rParams[17]);
                    xSql += string.Format("'{0}', ", rParams[18]);
                    xSql += string.Format("'{0}', ", rParams[19]);

                    xSql += string.Format("'{0}', ", rParams[20]); // 작성자 ID
                    xSql += " SYSDATE, ";                          // 작성일자
                    xSql += string.Format("'{0}', ", rParams[20]); // 수정자 ID
                    xSql += " SYSDATE) ";                          // 수정일자

                    xCmdLMS.CommandText = xSql;
                    base.Execute(db, xCmdLMS, xTransLMS);
                    xTransLMS.Commit(); // 트랜잭션 커밋

                    OracleParameter[] oraParams = null;
                    try
                    {
                        xSql         = @"
                        UPDATE t_lecturer
                           SET RES_FILE_NM = :RES_FILE_NM
                             , RES_FILE = :RES_FILE
                         WHERE lecturer_id = :LECTURER_ID
                        ";
                        oraParams    = new OracleParameter[3];
                        oraParams[0] = base.AddParam("RES_FILE_NM", OracleType.VarChar, rFileNameRes);
                        oraParams[1] = base.AddParam("RES_FILE", OracleType.Blob, rFileRes.Length, rFileRes);
                        oraParams[2] = base.AddParam("LECTURER_ID", OracleType.VarChar, rParams[0]);
                        base.ExecuteScalar("LMS", xSql, oraParams);
                    }
                    catch { }
                    try
                    {
                        xSql         = @"
                        UPDATE t_lecturer
                           SET DOC_FILE_NM1 = :DOC_FILE_NM1
                             , DOC_FILE1 = :DOC_FILE1
                         WHERE lecturer_id = :LECTURER_ID
                        ";
                        oraParams    = new OracleParameter[3];
                        oraParams[0] = base.AddParam("DOC_FILE_NM1", OracleType.VarChar, rFileNameDoc);
                        oraParams[1] = base.AddParam("DOC_FILE1", OracleType.Blob, rFileDoc.Length, rFileDoc);
                        oraParams[2] = base.AddParam("LECTURER_ID", OracleType.VarChar, rParams[0]);
                        base.ExecuteScalar("LMS", xSql, oraParams);
                    }
                    catch { }

                    xRtn = Boolean.TrueString;
                }
                catch (Exception ex)
                {
                    xTransLMS.Rollback(); // Exception 발생시 롤백처리
                    throw ex;
                }
                finally
                {
                    if (xCmdLMS != null)
                    {
                        xCmdLMS.Dispose();
                    }

                    if (xTransLMS != null)
                    {
                        xTransLMS.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, "Propagate Policy");
                if (rethrow)
                {
                    throw;
                }
            }
            return(xRtn);
        }
Пример #47
0
 /// <summary>
 /// 开始一个新事务
 /// </summary>
 /// <returns>事务对象</returns>
 public IDbTransaction BeginTransaction()
 {
     m_Transaction = m_Connection.BeginTransaction();
     return(m_Transaction);
 }
        public static bool SaveEmployeePosting(List <ATTEmployeePosting> lstEmployeePosting, OracleTransaction Tran, double empID)
        {
            try
            {
                foreach (ATTEmployeePosting lst in lstEmployeePosting)
                {
                    OracleParameter[] paramArray = new OracleParameter[18];
                    paramArray[0]  = Utilities.GetOraParam(":p_EMP_ID", empID, OracleDbType.Double, ParameterDirection.Input);
                    paramArray[1]  = Utilities.GetOraParam(":p_ORG_ID", lst.OrgID, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[2]  = Utilities.GetOraParam(":p_DES_ID", lst.DesID, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[3]  = Utilities.GetOraParam(":p_CREATED_DATE", lst.CreatedDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[4]  = Utilities.GetOraParam(":p_POST_ID", lst.PostID, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[5]  = Utilities.GetOraParam(":p_FROM_DATE", lst.FromDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[6]  = Utilities.GetOraParam(":p_TO_DATE", lst.ToDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[7]  = Utilities.GetOraParam(":p_JOINING_DATE", lst.JoiningDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[8]  = Utilities.GetOraParam(":p_DECISION_DATE", lst.DecisionDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[9]  = Utilities.GetOraParam(":p_LEAVE_DATE", lst.LeaveDate, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[10] = Utilities.GetOraParam(":p_POSTING_TYPE_ID", lst.PostingTypeID, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[11] = Utilities.GetOraParam(":p_EMP_POSTING_SALARY", lst.EmpSalary, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[12] = Utilities.GetOraParam(":p_EMP_POSTING_ALLOWANCE", lst.EmpAllowance, OracleDbType.Int64, ParameterDirection.Input);
                    paramArray[13] = Utilities.GetOraParam(":p_EMP_POSTING_KITAAB_DARTA_NO", lst.EmpKitaabDartaNo, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[14] = Utilities.GetOraParam(":p_EMP_POSTING_REMARKS", lst.EmpPostingRemarks, OracleDbType.Varchar2, ParameterDirection.Input);
                    if (lst.PostingAttachmentDocs != null && lst.PostingAttachmentDocs.Length > 0)
                    {
                        paramArray[15] = Utilities.GetOraParam(":p_ATTACHMENT", lst.PostingAttachmentDocs, OracleDbType.Blob, ParameterDirection.Input);
                    }
                    else
                    {
                        paramArray[15] = Utilities.GetOraParam(":p_ATTACHMENT", null, OracleDbType.Blob, ParameterDirection.Input);
                    }

                    paramArray[16] = Utilities.GetOraParam(":p_ATTACHMENT_FILE_NAME", lst.PostingAttachmentContent, OracleDbType.Varchar2, ParameterDirection.Input);
                    paramArray[17] = Utilities.GetOraParam(":p_ENTRY_BY", lst.EntryBy, OracleDbType.Varchar2, ParameterDirection.Input);

                    if (lst.Action == "A")
                    {
                        SqlHelper.ExecuteNonQuery(Tran, CommandType.StoredProcedure, "SP_ADD_EMP_POSTINGS", paramArray);
                    }
                    else if (lst.Action == "E")
                    {
                        SqlHelper.ExecuteNonQuery(Tran, CommandType.StoredProcedure, "SP_EDIT_EMP_POSTINGS", paramArray);
                    }
                }
                return(true);
            }
            catch (OracleException oex)
            {
                PCS.COREDL.OracleError oe = new PCS.COREDL.OracleError();
                throw new ArgumentException(oe.GetOraError(oex.Number, oex.Message));
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #49
0
		/// <summary>
		/// Execute an OracleCommand (that returns no resultset) against the specified OracleTransaction
		/// using the provided parameters.
		/// </summary>
		/// <remarks>
		/// e.g.:  
		///  int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "GetOrders", new OracleParameter("@prodid", 24));
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param>  
		/// <param name="commandParameters">an array of OracleParameters used to execute the command</param>
		/// <returns>an int representing the number of rows affected by the command</returns>
		public static int ExecuteNonQuery(OracleTransaction transaction, CommandType commandType, string commandText, params OracleParameter[] commandParameters)
		{
			//create a command and prepare it for execution
			OracleCommand cmd = new OracleCommand();
			PrepareCommand(cmd, transaction.Connection, transaction, commandType, commandText, commandParameters);
			
			//finally, execute the command.
			return cmd.ExecuteNonQuery();
		}
Пример #50
0
 /// <summary>
 /// 根据事务锁定级别创建一个新事务
 /// </summary>
 /// <param name="isoLevel">事务锁定级别</param>
 /// <returns>事务对象</returns>
 public IDbTransaction BeginTransaction(System.Data.IsolationLevel isoLevel)
 {
     m_Transaction = m_Connection.BeginTransaction(isoLevel);
     return(m_Transaction);
 }
Пример #51
0
		/// <summary>
		/// Execute a stored procedure via an OracleCommand (that returns a resultset) against the specified 
		/// OracleTransaction using the provided parameter values.  This method will query the database to discover the parameters for the 
		/// stored procedure (the first time each stored procedure is called), and assign the values based on parameter order.
		/// </summary>
		/// <remarks>
		/// This method provides no access to output parameters or the stored procedure's return value parameter.
		/// 
		/// e.g.:  
		///  DataSet ds = ExecuteDataset(trans, "GetOrders", 24, 36);
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="spName">the name of the stored procedure</param>
		/// <param name="parameterValues">an array of objects to be assigned as the input values of the stored procedure</param>
		/// <returns>a dataset containing the resultset generated by the command</returns>
		public static DataSet ExecuteDataset(OracleTransaction transaction, string spName, params object[] parameterValues)
		{
			//if we got parameter values, we need to figure out where they go
			if ((parameterValues != null) && (parameterValues.Length > 0)) 
			{
				//pull the parameters for this stored procedure from the parameter cache (or discover them & populate the cache)
				OracleParameter[] commandParameters = OracleHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

				//assign the provided values to these parameters based on parameter order
				AssignParameterValues(commandParameters, parameterValues);

				//call the overload that takes an array of OracleParameters
				return ExecuteDataset(transaction, CommandType.StoredProcedure, spName, commandParameters);
			}
				//otherwise we can just call the SP without params
			else 
			{
				return ExecuteDataset(transaction, CommandType.StoredProcedure, spName);
			}
		}
Пример #52
0
 public static int ExecuteNonQuery(OracleTransaction transaction, CommandType commandType, string commandText)
 {
     return(ExecuteNonQuery(transaction, commandType, commandText, (OracleParameter[])null));
 }
Пример #53
0
		/// <summary>
		/// Execute an OracleCommand (that returns a resultset and takes no parameters) against the provided OracleTransaction. 
		/// </summary>
		/// <remarks>
		/// e.g.:  
		///  OracleDataReader dr = ExecuteReader(trans, CommandType.StoredProcedure, "GetOrders");
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>
		/// <param name="commandText">the stored procedure name or PL/SQL command</param>  
		/// <returns>an OracleDataReader containing the resultset generated by the command</returns>
		public static OracleDataReader ExecuteReader(OracleTransaction transaction, CommandType commandType, string commandText)
		{
			//pass through the call providing null for the set of OracleParameters
			return ExecuteReader(transaction, commandType, commandText, (OracleParameter[])null);
		}
Пример #54
0
 public static OracleDataReader ExecuteReader(OracleTransaction transaction, CommandType commandType, string commandText, params OracleParameter[] commandParameters)
 {
     //pass through to private overload, indicating that the connection is owned by the caller
     return(ExecuteReader(transaction.Connection, transaction, commandType, commandText, commandParameters, OracleConnectionOwnership.External));
 }
Пример #55
0
		/// <summary>
		/// Execute a stored procedure via an OracleCommand (that returns a resultset) against the specified
		/// OracleTransaction using the provided parameter values.  This method will query the database to discover the parameters for the 
		/// stored procedure (the first time each stored procedure is called), and assign the values based on parameter order.
		/// </summary>
		/// <remarks>
		/// This method provides no access to output parameters or the stored procedure's return value parameter.
		/// 
		/// e.g.:  
		///  OracleDataReader dr = ExecuteReader(trans, "GetOrders", 24, 36);
		/// </remarks>
		/// <param name="transaction">a valid OracleTransaction</param>
		/// <param name="spName">the name of the stored procedure</param>
		/// <param name="parameterValues">an array of objects to be assigned as the input values of the stored procedure</param>
		/// <returns>an OracleDataReader containing the resultset generated by the command</returns>
		public static OracleDataReader ExecuteReader(OracleTransaction transaction, string spName, params object[] parameterValues)
		{
			//if we got parameter values, we need to figure out where they go
			if ((parameterValues != null) && (parameterValues.Length > 0)) 
			{
				OracleParameter[] commandParameters = OracleHelperParameterCache.GetSpParameterSet(transaction.Connection.ConnectionString, spName);

				AssignParameterValues(commandParameters, parameterValues);

				return ExecuteReader(transaction, CommandType.StoredProcedure, spName, commandParameters);
			}
				//otherwise we can just call the SP without params
			else 
			{
				return ExecuteReader(transaction, CommandType.StoredProcedure, spName);
			}
		}
Пример #56
0
        private static void PrepareCommand(OracleCommand command, OracleConnection connection, OracleTransaction transaction, CommandType commandType, string commandText, OracleParameter[] commandParameters)
        {
            //if the provided connection is not open, we will open it
            if (connection.State != ConnectionState.Open)
            {
                connection.Open();
            }

            //associate the connection with the command
            command.Connection = connection;

            //set the command text (stored procedure name or SQL statement)
            command.CommandText = commandText;

            //if we were provided a transaction, assign it.
            if (transaction != null)
            {
                //command.Transaction = transaction;
            }

            //set the command type
            command.CommandType = commandType;

            //attach the command parameters if they are provided
            if (commandParameters != null)
            {
                AttachParameters(command, commandParameters);
            }

            return;
        }
        /// <summary>
        /// Starts a new ADO.NET transaction using the open connection object of this class.
        /// Opens the connection if it isn't already open.
        /// No nesting allowed, throws exception if the transaction is already pending.
        /// </summary>
        /// <remarks>Uses default <see cref="IsolationLevel"/>.</remarks>
        public void BeginTransaction()
        {
            if (this.defaultTransactionIsolationLevel != null)
            {
                BeginTransaction(this.defaultTransactionIsolationLevel.Value);
            }
            else
            {
                if (this.isTransactionPending)
                    throw new InvalidOperationException(Messages.ConnectionProvider_TranAlreadyPending);

                if (!IsOpen)
                    OpenConnection();

                this.oraTran = this.oraConn.BeginTransaction();
                this.isTransactionPending = true;
            }
        }
Пример #58
0
 public static XmlReader ExecuteXmlReader(OracleTransaction transaction, CommandType commandType, string commandText)
 {
     //pass through the call providing null for the set of OracleParameters
     return(ExecuteXmlReader(transaction, commandType, commandText, (OracleParameter[])null));
 }
        /// <summary>
        /// Releases the resources used by this object.
        /// </summary>
        private void Dispose(bool isDisposing)
        {
            // Check to see if Dispose has already been called.
            if (this.isDisposed == false)
            {
                if (isDisposing)
                {
                    // Dispose managed resources.
                    if (this.oraTran != null)
                    {
                        this.oraTran.Dispose();
                        this.oraTran = null;
                    }

                    // Closing the connection will abort (rollback) any pending transactions.
                    if (this.oraConn != null)
                    {
                        this.oraConn.Close();
                        this.oraConn.Dispose();
                        this.oraConn = null;
                    }
                }
            }

            this.isDisposed = true;
        }
Пример #60
0
        /************************************************************
         * Function name : SetLecturerDelete
         * Purpose       : 강사정보 삭제(변경) 실제로 삭제 하지는 않음
         * Input         : string[] rParams
         * Output        : String Bollean Type
         *************************************************************/
        public string SetLecturerDelete(string[,] rParams)
        {
            string xRtn = Boolean.FalseString;

            Database db = base.GetDataBase("LMS");

            OracleConnection xCnnLMS = (OracleConnection)db.CreateConnection();

            xCnnLMS.Open();
            OracleTransaction xTrnsLMS = null;
            OracleCommand     xCmdLMS  = null;

            try
            {
                xTrnsLMS            = xCnnLMS.BeginTransaction(); // 트랜잭션 시작
                xCmdLMS             = base.GetSqlCommand(db);
                xCmdLMS.Connection  = xCnnLMS;
                xCmdLMS.Transaction = xTrnsLMS;

                try
                {
                    //int j = xParams.GetLength(0);
                    for (int i = 0; i < rParams.GetLength(0); i++)
                    {
                        string xsql = " UPDATE t_lecturer SET ";
                        xsql += string.Format(" status = '{0}', ", rParams[i, 2]);
                        xsql += string.Format(" del_id = '{0}', ", rParams[i, 1]);
                        xsql += " del_dt = SYSDATE ";
                        xsql += string.Format(" WHERE lecturer_id = '{0}'", rParams[i, 0]);

                        xCmdLMS.CommandText = xsql;
                        base.Execute(db, xCmdLMS, xTrnsLMS);
                    }

                    xTrnsLMS.Commit(); // 트랜잭션 커밋
                    xRtn = Boolean.TrueString;
                }
                catch (Exception ex)
                {
                    xTrnsLMS.Rollback(); // Exception 발생시 롤백처리...
                    throw ex;
                }
                finally
                {
                    if (xCmdLMS != null)
                    {
                        xCmdLMS.Dispose();
                    }

                    if (xTrnsLMS != null)
                    {
                        xTrnsLMS.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, "Propagate Policy");
                if (rethrow)
                {
                    throw;
                }
            }
            return(xRtn);
        }