public bool CreateDataSet(string CURRENT_USER, Int32 CURRENT_REGISTRY_ID, string name, string parent) { bool objReturn = false; XmlSerializer serializer = null; SharedDataSet dataSet = null; MemoryStream stream = null; try { if (!CheckItemExists("DataSet", parent + "/" + name)) { if (rsMain == null) { rsMain = new ReportingService2010() { Url = ReportServiceUrl, Credentials = System.Net.CredentialCache.DefaultCredentials } } ; serializer = new XmlSerializer(typeof(SharedDataSet)); dataSet = new SharedDataSet(CURRENT_REGISTRY_ID); stream = new MemoryStream(); serializer.Serialize(stream, dataSet); byte[] definition = stream.ToArray(); Warning[] warnings = null; LogDetails logDetails = new LogDetails(String.Format("{0}.{1}", System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, System.Reflection.MethodBase.GetCurrentMethod().Name), CURRENT_USER, CURRENT_REGISTRY_ID); CatalogItem item = rsMain.CreateCatalogItem("DataSet", name, parent, false, definition, null, out warnings); LogManager.LogTiming(logDetails); if (item != null) { objReturn = true; } } else { objReturn = true; } } catch (Exception ex) { LogManager.LogError(ex.Message, String.Format("{0}.{1}", System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, System.Reflection.MethodBase.GetCurrentMethod().Name), CURRENT_USER, CURRENT_REGISTRY_ID); throw ex; } finally { if (stream != null) { stream.Close(); stream.Dispose(); stream = null; } } return(objReturn); }
/// <summary> /// Create an SDS object in memory /// </summary> /// <param name="shared">Boolean indicating whether a shared dataset is required</param> /// <returns>The new dataset object</returns> public DataSet CreateSDSInMemory(bool shared) { // Create and SDS object DataSet internalSDS; // If a shared dataset has been specified, then open a shared dataset object, otherwise open an ordinary dataset object #if true internalSDS = DataSet.Open("msds:memory"); #else if (shared) { internalSDS = SharedDataSet.Open("msds:memory2"); } else { internalSDS = DataSet.Open("msds:memory2"); } #endif // Disable auto commit internalSDS.IsAutocommitEnabled = false; // Return the SDS object return(internalSDS); }