Пример #1
0
        /// <summary>
        /// 获取当前函数对象
        /// </summary>
        /// <returns></returns>
        internal static SqlFunBase GetSqlFun()
        {
            SqlFunBase sqlFun;

            switch (MDbType)
            {
            case DbHelper.DbTypeEnum.Mysql:
                sqlFun = new SqlFunBase();
                break;

            case DbHelper.DbTypeEnum.Sqlite:
                sqlFun = new SqLiteFunction();
                break;

            case DbHelper.DbTypeEnum.Mssql:
                sqlFun = new MsSqlFunction();
                break;

            case DbHelper.DbTypeEnum.Oracle:
                sqlFun = new OracleFunction();
                break;

            case DbHelper.DbTypeEnum.None:
                sqlFun = new SqlFunBase();
                break;

            default:
                sqlFun = new SqlFunBase();
                break;
            }
            return(sqlFun);
        }
Пример #2
0
        public override QsiColumnNode VisitColumn(Column column)
        {
            var columnNode = base.VisitColumn(column);

            if (columnNode is QsiDeclaredColumnNode declaredColumn &&
                declaredColumn.Name.Level == 1 && !declaredColumn.Name[0].IsEscaped &&
                OracleFunction.Contains(declaredColumn.Name[0].Value))
            {
                return(TreeHelper.Create <QsiDerivedColumnNode>(cn =>
                {
                    cn.Expression.SetValue(TreeHelper.Create <QsiInvokeExpressionNode>(n =>
                    {
                        n.Member.SetValue(new QsiFunctionExpressionNode
                        {
                            Identifier = declaredColumn.Name
                        });
                    }));

                    cn.Alias.SetValue(new QsiAliasNode
                    {
                        Name = declaredColumn.Name[0]
                    });
                }));
            }

            return(columnNode);
        }
Пример #3
0
        /// <summary>
        /// 获取当前函数对象
        /// </summary>
        /// <returns></returns>
        public static SqlFunBase GetSqlFun(ORM.DbTypeEnum mDbType = ORM.DbTypeEnum.None)
        {
            SqlFunBase sqlFun;

            switch (mDbType)
            {
            case ORM.DbTypeEnum.Mysql:
                sqlFun = new SqlFunBase();
                break;

            case ORM.DbTypeEnum.SqlIte:
                sqlFun = new SqLiteFunction();
                break;

            case ORM.DbTypeEnum.Mssql:
                sqlFun = new MsSqlFunction();
                break;

            case ORM.DbTypeEnum.Oracle:
                sqlFun = new OracleFunction();
                break;

            case ORM.DbTypeEnum.None:
                sqlFun = new SqlFunBase();
                break;

            default:
                sqlFun = new SqlFunBase();
                break;
            }
            return(sqlFun);
        }
Пример #4
0
 public Task <string> OracleQueryAsync(OracleFunction oracleFunction, BlockParameter blockParameter = null)
 {
     return(ContractHandler.QueryAsync <OracleFunction, string>(oracleFunction, blockParameter));
 }