Esempio n. 1
0
        /// <summary>
        /// 条件式の判定結果を返す
        /// </summary>
        /// <param name="aDbConn"></param>
        /// <param name="ifCondition"></param>
        /// <param name="aCacheStrategy"></param>
        /// <returns></returns>
        /// <remarks></remarks>
        public static bool EvaluateCondition(IDbConn aDbConn
                                             , string ifCondition
                                             , Tran.CacheStrategy aCacheStrategy)
        {
            if (string.IsNullOrEmpty(ifCondition))
            {
                throw new System.ArgumentNullException("ifCondition", "指定された条件式が空です");
            }

            //参照テーブル名を取得するため、ここで仮のSQL文を作成する
            SqlBuilder       conditionSql   = new SqlBuilder("SELECT 1 WHERE " + ifCondition);
            HashSet <string> usedTableNames = conditionSql.GetAllTableNames();

            //ダミーテーブルTを除外する
            //usedTableNames.Remove(conditionSql.GetSrcTableNames())
            return(aDbConn.ExecExp(ifCondition, usedTableNames, aCacheStrategy));
        }