コード例 #1
0
        /// <summary>
        /// Check that the specified calculated field expression is valid
        /// </summary>
        /// <param name="advExpr"></param>
        /// <returns></returns>

        public static string ValidateCalculatedFieldExpression(
            string advExpr)
        {
            try
            {
                CalcFieldMetaBroker mb = new CalcFieldMetaBroker();
                string sql             = mb.BuildAdvancedExpressionSql(advExpr);
                sql = "select * from (" + sql + ") where 1=2";                 // wrap in some sql for rapid evaluation
                DbCommandMx dao = new DbCommandMx();
                DateTime    t0  = DateTime.Now;
                dao.Prepare(sql);
                dao.ExecuteReader();
                dao.Dispose();
                double ms = TimeOfDay.Delta(t0);
                return("");
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
コード例 #2
0
        /// <summary>
        /// Create broker of specified type
        /// </summary>
        /// <param name="mt"></param>
        /// <returns></returns>

        public static GenericMetaBroker Create(
            MetaBrokerType type)
        {
            GenericMetaBroker mb = null;

            if (type == MetaBrokerType.Generic)
            {
                return(new GenericMetaBroker());
            }

            if (type == MetaBrokerType.Pivot)
            {
                PivotMetaBroker pivotMb = new PivotMetaBroker();
                mb = (PivotMetaBroker)pivotMb;
                return(mb);
            }

            if (type == MetaBrokerType.Annotation)
            {
                AnnotationMetaBroker aMb = new AnnotationMetaBroker();
                mb = (GenericMetaBroker)aMb;
                return(mb);
            }

            if (type == MetaBrokerType.CalcField)
            {
                CalcFieldMetaBroker cfMb = new CalcFieldMetaBroker();
                mb = (GenericMetaBroker)cfMb;
                return(mb);
            }

            if (type == MetaBrokerType.CalcTable)
            {
                CalcTableMetaBroker ctMb = new CalcTableMetaBroker();
                mb = (GenericMetaBroker)ctMb;
                return(mb);
            }

            if (type == MetaBrokerType.MultiTable)
            {
                MultiTableMetaBroker mtMb = new MultiTableMetaBroker();
                mb = (GenericMetaBroker)mtMb;
                return(mb);
            }

            if (type == MetaBrokerType.TargetAssay)
            {
                QueryEngineLibrary.MultiDbAssayMetaBroker taMb = new MultiDbAssayMetaBroker();
                mb = (GenericMetaBroker)taMb;
                return(mb);
            }

            if (type == MetaBrokerType.Assay)
            {
                AssayMetaBroker assayMb = new AssayMetaBroker();
                mb = (GenericMetaBroker)assayMb;
                return(mb);
            }

            if (type == MetaBrokerType.UnpivotedAssay)
            {
                UnpivotedAssayMetaBroker urMb = new UnpivotedAssayMetaBroker();
                mb = (GenericMetaBroker)urMb;
                return(mb);
            }

            if (type == MetaBrokerType.SpotfireLink)
            {
                SpotfireLinkMetaBroker slMb = new SpotfireLinkMetaBroker();
                mb = (GenericMetaBroker)slMb;
                return(mb);
            }

            if (type == MetaBrokerType.NoSql)
            {
                NoSqlMetaBroker nsMb = new NoSqlMetaBroker();
                mb = (GenericMetaBroker)nsMb;
                return(mb);
            }

            if (type == MetaBrokerType.RgroupDecomp)
            {
                RgroupMetaBroker rgMb = new RgroupMetaBroker();
                mb = (GenericMetaBroker)rgMb;
                return(mb);
            }

            throw new QueryException("Unknown metabroker type " + type.ToString());
        }