public DataTable Discover(string request, string restrictions, string properties) { Context.TraceEvent(100, 0, "Discover: Starting (" + request + ")"); XmlaClient client = createXmlaClientAndConnect(); DataTable dt = new DataTable(); // if no properties restriction is specified, default to using // the current database if (properties.Length == 0) { properties = string.Format("<CATALOG>{0}</CATALOG>", Context.CurrentDatabaseName); } try { string res; TimeoutUtility.XmlaClientDiscover(client, request, restrictions, properties, out res, false, false, false); dt = createDataTableFromXmla(res); } finally { client.Disconnect(); Context.TraceEvent(100, 0, "Discover: XML/A Connection disconnected"); } Context.TraceEvent(100, 0, "Discover: Finished (" + dt.Rows.Count.ToString() + " rows returned"); return(dt); }
public DataTable DiscoverXmlMetadataFull(string path, string whereClause, string restrictions) { XmlaClient xmlac = createXmlaClientAndConnect(); string xmlaResult; string properties = ""; TimeoutUtility.XmlaClientDiscover(xmlac, "DISCOVER_XML_METADATA", restrictions, properties, out xmlaResult, false, false, false); XmlaDiscoverParser dp = new XmlaDiscoverParser(); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlaResult); return(dp.Parse(doc, path, Context.ExecuteForPrepare, whereClause)); }