Esempio n. 1
0
 internal override void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter)
 {
     if (_operand != null)
     {
         _operand.CastToSqlLiteralType(caster, viewInfoGetter);
     }
 }
Esempio n. 2
0
 internal override void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter)
 {
     for (int i = 0; i <= _operands.Length - 1; i++)
     {
         if (_operands[i] is Literal)
         {
             _operands[i] = CreateSqlLiteral(caster
                                             , viewInfoGetter
                                             , _lOperand
                                             , ((Literal)_operands[i]).Value);
         }
     }
 }
Esempio n. 3
0
        internal SqlLiteral CreateSqlLiteral(ICaster caster
                                             , IViewInfoGetter viewInfoGetter
                                             , val val
                                             , object literal)
        {
            string         propertyName   = val.PropertyName;
            ViewColumnInfo viewColumnInfo = viewInfoGetter.GetViewColumnInfo(propertyName);

            if (viewColumnInfo == null)
            {
                throw new NotExistsViewColumnException(
                          propertyName + "はレコード" + viewInfoGetter.GetViewInfo().Name +
                          "に存在しない、" + "またはSELECT句と紐付いていません");
            }
            string sqlLiteral = caster.CastToSqlLiteralType(literal, viewColumnInfo);

            return(new SqlLiteral(sqlLiteral));
        }
Esempio n. 4
0
 internal override void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter)
 {
     if (_fromOperand is Literal)
     {
         _fromOperand = CreateSqlLiteral(caster
                                         , viewInfoGetter
                                         , _operand
                                         , ((Literal)_fromOperand).Value);
     }
     if (_toOperand is Literal)
     {
         _toOperand = CreateSqlLiteral(caster
                                       , viewInfoGetter
                                       , _operand
                                       , ((Literal)_toOperand).Value);
     }
 }
Esempio n. 5
0
 internal override void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter)
 {
     if (_lOperand is val && _rOperand is Literal)
     {
         _rOperand = CreateSqlLiteral(caster
                                      , viewInfoGetter
                                      , (val)_lOperand
                                      , ((Literal)_rOperand).Value);
     }
     else if (_lOperand is Literal && _rOperand is val)
     {
         _lOperand = CreateSqlLiteral(caster
                                      , viewInfoGetter
                                      , (val)_rOperand
                                      , ((Literal)_lOperand).Value);
     }
     else if (_lOperand is val && _rOperand is val)
     {
         return;
     }
 }
Esempio n. 6
0
        //保持する抽出条件から、NULL表現値を被演算子に持つ抽出条件を削除し、
        //プロパティ型からSQLリテラル型に型変換する
        void IQueryExtention <TRecord> .CastToSqlLiteralType(ICaster caster, IViewInfoGetter viewInfoGetter)
        {
            //ループの操作対象をループ内で削除するので、逆順にループさせないといけない
            int i = _criteria.Count - 1;

            while (i >= 0)
            {
                //Queryオブジェクトに格納された値オブジェクトがNULL表現値の場合、その条件式を削除する
                _criteria[i] = _criteria[i].RemoveExpIfNull(caster);
                if (_criteria[i] == null)
                {
                    //配列の要素を削除する
                    _criteria.RemoveAt(i);
                    i -= 1;
                    continue;
                }

                //Queryオブジェクトに格納された値オブジェクトを型変換する
                _criteria[i].CastToSqlLiteralType(caster, viewInfoGetter);
                i -= 1;
            }
        }
Esempio n. 7
0
 internal abstract void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter);
Esempio n. 8
0
 internal override void CastToSqlLiteralType(ICaster caster
                                             , IViewInfoGetter viewInfoGetter)
 {
     return;
 }