private string GetTimeWhere(DataCriteria kv) { if (kv == null || kv.values == null || kv.values.Count == 0) { return(string.Empty); } DateTime from; DateTime to = DateTime.Now; bool UseFrom = DateTime.TryParseExact(kv.values[0], "yyyy-MM", CultureInfo.CurrentCulture, DateTimeStyles.None, out from); bool UseTo = kv.values.Count > 1? DateTime.TryParseExact(kv.values[1], "yyyy-MM", CultureInfo.CurrentCulture, DateTimeStyles.None, out to):false; if (!UseFrom && !UseTo) { return(string.Empty); } else if (!UseFrom) { return(string.Format(" and {0}", GetTimeWhereStatment(to, "<"))); } else if (!UseTo) { return(string.Format(" and {0}", GetTimeWhereStatment(from, ">"))); } else { return(string.Format(" and ({0} and {1})", GetTimeWhereStatment(from, ">"), GetTimeWhereStatment(to, "<"))); } }
public Options(object[] tagnames) { Criteria = new DataCriteria(tagnames); Criteria.IntervalMicroseconds = 60000000; Criteria.Start = DateTime.MinValue; Criteria.End = DateTime.MinValue; }
private static DataResult GetDataResult2(DataCriteria criteria) { DataResult result; criteria.TemporaryTimeout = 60; if (AppSettings.IsLoggingEnabled) { Log(criteria.ToString(), new object[0], true); result = FetchAll(criteria); Log(criteria.ToString(), new object[0], false); } else { result = FetchAll(criteria); } return(result); }
public System.Data.DataSet QueryInterpolated(DateTime startTime, DateTime endTime, uint numSamples, Type queryType, params TagSpecifics[] tags) { //declare general purpose variables int total = 0; DateTime st = DateTime.Now; DateTime en = st; var ds = new System.Data.DataSet(); //change the cursor to busy //Cursor = Cursors.WaitCursor; if (sc == null || !sc.IsConnected()) { this.Connect(); } //if currently connected if (sc.IsConnected()) { var tagsForSeries = new List<string>(); var allTags = new List<string>(); var dependencies = new Dictionary<string, string[]>(); var delegates = new Dictionary<string, TagSpecifics.Formula>(); foreach (TagSpecifics tag in tags) { tagsForSeries.Add(tag.Tagname); dependencies.Add(tag.Tagname, tag.DependencyTagnames); delegates.Add(tag.Tagname, tag.CalcFormula); if (tag.DependencyTagnames != null && tag.DependencyTagnames.Length > 0) allTags.AddRange(tag.DependencyTagnames); if (tag.DependencyTagnames == null || tag.DependencyTagnames.Length == 0) allTags.Add(tag.Tagname); } //build the query string DataQueryParams query; ItemErrors errors; Proficy.Historian.ClientAccess.API.DataSet set = new Proficy.Historian.ClientAccess.API.DataSet(); if (queryType == typeof(InterpolatedQuery)) { query = new InterpolatedQuery(startTime, endTime, numSamples, allTags.ToArray<string>()) { Fields = DataFields.Time | DataFields.Value | DataFields.Quality }; sc.IData.Query(ref query, out set, out errors); ds = AddDatasetFromHistorianDataset(tagsForSeries, dependencies, delegates, "", ref ds, set); } else if (queryType == typeof(CalculatedQuery)) { DataCriteria criteria = new DataCriteria() { Start = startTime, End = endTime, NumberOfSamples = numSamples, SamplingMode = DataCriteria.SamplingModeType.Calculated, CalculationMode = DataCriteria.CalculationModeType.Maximum, Tagnames = new HashSet<string>(allTags) }; query = new CalculatedQuery(DataCriteria.CalculationModeType.Maximum, allTags.ToArray<string>()) { Criteria = criteria, Fields = DataFields.Time | DataFields.Value | DataFields.Quality }; sc.IData.Query(ref query, out set, out errors); ds = AddDatasetFromHistorianDataset(tagsForSeries, dependencies, delegates, "_MAX", ref ds, set); query.Criteria.CalculationMode = DataCriteria.CalculationModeType.Average; sc.IData.Query(ref query, out set, out errors); ds = AddDatasetFromHistorianDataset(tagsForSeries, dependencies, delegates, "_AVG", ref ds, set); query.Criteria.CalculationMode = DataCriteria.CalculationModeType.Minimum; sc.IData.Query(ref query, out set, out errors); ds = AddDatasetFromHistorianDataset(tagsForSeries, dependencies, delegates, "_MIN", ref ds, set); query.Criteria.SamplingMode = DataCriteria.SamplingModeType.Interpolated; sc.IData.Query(ref query, out set, out errors); ds = AddDatasetFromHistorianDataset(tagsForSeries, dependencies, delegates, "", ref ds, set); //query = null; } else if (queryType == typeof(RawByTimeQuery)) { DataCriteria criteria = new DataCriteria() { Start = startTime }; query = new RawByTimeQuery(startTime, allTags.ToArray()) { Fields = DataFields.Time | DataFields.Value | DataFields.Quality }; sc.IData.Query(ref query, out set, out errors); //ds } else { query = null; return null; } //execute the query and populate the "set" Historian Dataset //sum up the total of samples total += set.TotalSamples; } //calculate the elapsed time on the query operation and reset the cursor en = DateTime.Now; // Cursor = Cursors.Default; //grpRead.Text = "Read Data - " + total.ToString() + " Samples - Elapsed Time: " + en.Subtract(st).Seconds.ToString() + " Secs"; return ds; }
public Proficy.Historian.ClientAccess.API.DataSet QueryRaw(DateTime startTime, DateTime endTime, params TagSpecifics[] tags) { var ds = new System.Data.DataSet(); DataQueryParams query; ItemErrors errors; Proficy.Historian.ClientAccess.API.DataSet set = new Proficy.Historian.ClientAccess.API.DataSet(); var tagsForSeries = new List<string>(); foreach (TagSpecifics tag in tags) { tagsForSeries.Add(tag.Tagname); } DataCriteria criteria = new DataCriteria() { Start=startTime, End = endTime, Tagnames= new HashSet<string>(tagsForSeries), SamplingMode =DataCriteria.SamplingModeType.RawByTime }; query = new RawByTimeQuery(startTime, tagsForSeries.ToArray()) { Criteria=criteria, Fields = DataFields.Time | DataFields.Value | DataFields.Quality }; sc.IData.Query(ref query, out set, out errors); return set; //ds = AddDatasetFromHistorianDataset(tagsForSeries, new Dictionary<string, string[]>(), new Dictionary<string, TagSpecifics.Formula>(), "", ref ds, set); //return ds; }
public static DataResult RemoveRecord(DataCriteria criteria) { return(DeleteRecord(criteria)); }
public static DataResult InsertRecord(DataCriteria criteria) { return(CreateRecord(criteria)); }
private static DataResult GetDataResult2(DataCriteria criteria) { DataResult result; criteria.TemporaryTimeout = 60; if (AppSettings.IsLoggingEnabled) { Log(criteria.ToString(), new object[0], true); result = FetchAll(criteria); Log(criteria.ToString(), new object[0], false); } else { result = FetchAll(criteria); } return result; }
public static DataResult RemoveRecord(DataCriteria criteria) { return DeleteRecord(criteria); }
public static DataResult InsertRecord(DataCriteria criteria) { return CreateRecord(criteria); }
/// <summary> /// Add (Append) to criteria the given key value pair /// </summary> /// <param name="key"> /// The key, The key i.e. the concept ref of the component , the xml attribute name /// </param> /// <param name="value"> /// The key's value /// </param> public void AddCriteria(DataCriteria Criterio) { this._criteria.Add(Criterio); }