//returns the single "row" found when all PKs are spesified public GroupingRow GetGroupingRow(string aGrouping) { //SqlDbConfig dbconf = DB; string sqlString = GetGrouping_SQLString_NoWhere(); sqlString += " WHERE " + DB.Grouping.GroupingCol.Is(mSqlCommand.GetParameterRef("aGrouping")); // creating the parameters System.Data.Common.DbParameter[] parameters = new System.Data.Common.DbParameter[1]; parameters[0] = mSqlCommand.GetStringParameter("aGrouping", aGrouping); DataSet ds = mSqlCommand.ExecuteSelect(sqlString, parameters); DataRowCollection myRows = ds.Tables[0].Rows; if (myRows.Count != 1) { throw new PCAxis.Sql.Exceptions.DbException(36, " Grouping = " + aGrouping); } GroupingRow myOut = new GroupingRow(myRows[0], DB, mLanguageCodes); return(myOut); }
/// <summary> /// Returns rows for the given grouping ids sorted by sortorder, prestext from given language. /// </summary> /// <param name="aGroupings">if this is empty, an empty list is returned </param> /// <param name="emptyRowSetIsOK"></param> /// <param name="aSortOrderLanguage"></param> /// <returns></returns> public List <GroupingRow> GetGroupingRowsSorted(StringCollection aGroupings, bool emptyRowSetIsOK, string aSortOrderLanguage) { string sortOrderLanguage = aSortOrderLanguage; if (!this.mLanguageCodes.Contains(aSortOrderLanguage)) { log.Error("requsted sortOrder language not in extaction, using first in list of languages"); sortOrderLanguage = this.mLanguageCodes[0]; } bool sortOnPrimaryLanguage = !this.mDbConfig.isSecondaryLanguage(sortOrderLanguage); List <GroupingRow> myOut = new List <GroupingRow>(); if (aGroupings.Count == 0) { return(myOut); } SqlDbConfig dbconf = DB; string sqlString = GetGrouping_SQLString_NoWhere(); sqlString += " WHERE " + DB.Grouping.GroupingCol.In(mSqlCommand.GetParameterRef("aGroupings"), aGroupings.Count); // creating the parameters System.Data.Common.DbParameter[] parameters = new System.Data.Common.DbParameter[aGroupings.Count]; for (int counter = 1; counter <= aGroupings.Count; counter++) { parameters[counter - 1] = mSqlCommand.GetStringParameter("aGroupings" + counter, aGroupings[counter - 1]); } if (sortOnPrimaryLanguage) { sqlString += " ORDER BY " + DB.Grouping.SortCodeCol.Id() + ", " + DB.Grouping.PresTextCol.Id() + ", "; } else { sqlString += " ORDER BY " + DB.GroupingLang2.SortCodeCol.Id(sortOrderLanguage) + ", " + DB.GroupingLang2.PresTextCol.Id(sortOrderLanguage) + ", "; } sqlString += DB.Grouping.GroupingCol.Id(); DataSet ds = mSqlCommand.ExecuteSelect(sqlString, parameters); DataRowCollection myRows = ds.Tables[0].Rows; if (myRows.Count < 1 && !emptyRowSetIsOK) { throw new PCAxis.Sql.Exceptions.DbException(35, " Grouping = " + aGroupings.ToString()); } foreach (DataRow sqlRow in myRows) { GroupingRow outRow = new GroupingRow(sqlRow, DB, mLanguageCodes); myOut.Add(outRow); } return(myOut); }