예제 #1
0
        /// <summary>
        /// SQL実行
        /// </summary>
        /// <param name="sSQL">実行するSQL</param>
        /// <param name="prms">パラメータ名</param>
        /// <returns>実行結果数</returns>
        public int ExecuteSQL(string sSQL, OraParams prms)
        {
            if (vMconnection == null)
            {
                vMappLog.Warn("DB接続がOpenしていません");
                throw new OraConnectException("DB接続がOpenしていません");
            }

            //SQLLog出力
            this.LoggingSQL(sSQL, prms);

            using (OracleCommand cmd = new OracleCommand(sSQL, vMconnection, vMtran))
            {
                if (vMtran != null)
                {
                    //トランザクション設定
                    cmd.Transaction = vMtran;
                }
                cmd.CommandType = CommandType.Text;
                if (prms != null && prms.Count > 0)
                {
                    AddParam(cmd, prms);
                }
                return(cmd.ExecuteNonQuery());
            }
        }
예제 #2
0
 /// <summary>
 /// パラメータの追加
 /// </summary>
 /// <param name="cmd">ORACLEコマンドクラス</param>
 /// <param name="prms">パラメータ</param>
 private void AddParam(OracleCommand cmd, OraParams prms)
 {
     foreach (OracleParameter prm in prms)
     {
         cmd.Parameters.Add(prm);
     }
 }
예제 #3
0
        /// <summary>
        /// データテーブルの取得
        /// </summary>
        /// <param name="sSQL">実行するSQL</param>
        /// <param name="prms">実行時パラメータ</param>
        /// <returns>取得したデータテーブル</returns>
        public DataTable ExecuteDataTable(string sSQL, OraParams prms)
        {
            if (vMconnection == null)
            {
                vMappLog.Warn("DB接続がOpenしていません");
                throw new OraConnectException("DB接続がOpenしていません");
            }

            //SQLLog出力
            this.LoggingSQL(sSQL, prms);

            DataTable dt = new DataTable();

            using (OracleDataAdapter da = new OracleDataAdapter())
            {
                using (OracleCommand cmd = new OracleCommand(sSQL, vMconnection, vMtran))
                {
                    cmd.CommandType = CommandType.Text;
                    if (prms != null && prms.Count > 0)
                    {
                        AddParam(cmd, prms);
                    }

                    da.SelectCommand = cmd;
                    da.Fill(dt);
                }
                return(dt);
            }
        }
예제 #4
0
 /// <summary>
 /// SQLログ出力
 /// </summary>
 /// <param name="sSQL">SQL</param>
 /// <param name="prms">パラメータ</param>
 private void LoggingSQL(string sSQL, OraParams prms)
 {
     //SQLLog
     vMsqlLog.Info(string.Format("実行SQL:{0}", sSQL));
     if (prms != null)
     {
         if (prms.Count > 0)
         {
             vMsqlLog.Info("実行SQLパラメータ-->");
         }
         foreach (OracleParameter LvPrm in prms)
         {
             if (LvPrm.Value != null)
             {
                 vMsqlLog.Info(string.Format("{0}:{1}", LvPrm.ParameterName, LvPrm.Value.ToString()));
             }
             else
             {
                 vMsqlLog.Info(LvPrm.ParameterName + ":");
             }
         }
     }
 }