/// <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); } }
/// <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()); }