public static DataTable[] explodeForGroups(DataTable table, string[] colsArr) { List <DataTable> list = new List <DataTable>(); table.DefaultView.Sort = ToolSqlText.getSortString(colsArr, ToolArray.create <SqlTypeRelations>(colsArr.Length, SqlTypeRelations.sortAsc)); DataColumn[] colsObj = new DataColumn[colsArr.Length]; for (int i = 0; i < colsArr.Length; ++i) { colsObj[i] = table.Columns[colsArr[i]]; } object[] curValues = ToolArray.create <object>(colsArr.Length, null); DataTable tabTmp = null; foreach (DataRowView rowV in table.DefaultView) { object[] tmpValues = compareData(rowV, colsObj, curValues); if (tmpValues != null) { curValues = tmpValues; list.Add(tabTmp = table.Clone()); } tabTmp.Rows.Add(rowV.Row.ItemArray); } table.DefaultView.Sort = string.Empty; return(list.ToArray()); }
void initCommandDelete(DbDataAdapter pAdp, ITableDescriptor pTabDesc) { if (string.IsNullOrEmpty(pTabDesc.getNameFull())) { throw new MyExceptionError("Db Table Full name is null or empty"); } bool hasRecVers = pTabDesc.getColumn(TableDUMMY.RECVERS) != null; List <SqliteParameter> listPrm = new List <SqliteParameter>(); StringBuilder buffer = new StringBuilder(); // // buffer.Append("DELETE FROM "); //buffer.Append("\""); buffer.Append(pTabDesc.getNameFull()); //buffer.Append("\""); //buffer.Append(pTableFullName); buffer.Append(" WHERE "); string[] arr_ = hasRecVers ? new string[] { TableDUMMY.LOGICALREF, TableDUMMY.RECVERS } : new string[] { TableDUMMY.LOGICALREF }; int prmIndx = 0; buffer.Append("("); for (int i = 0; i < arr_.Length; ++i) { if (i > 0) { buffer.Append(" AND "); } SqliteParameter prm = new SqliteParameter(); ++prmIndx; prm.ParameterName = ToolSqlText.getNewParamName(prmIndx); prm.SourceVersion = DataRowVersion.Original; prm.SourceColumn = arr_[i]; //prm.Size = col.size; listPrm.Add(prm); buffer.Append(string.Format("{0} = {1}", prm.SourceColumn, prm.ParameterName)); } buffer.Append(")"); // pAdp.DeleteCommand = environment.getNewSqlCommand(buffer.ToString(), listPrm.ToArray()); }
void initCommandInsert(DbDataAdapter pAdp, ITableDescriptor pTabDesc) { if (string.IsNullOrEmpty(pTabDesc.getNameFull())) { throw new MyExceptionError("Db Table Full name is null or empty"); } List <SqliteParameter> listPrm = new List <SqliteParameter>(); StringBuilder buffer = new StringBuilder(); // // buffer.Append("INSERT INTO "); //buffer.Append("\""); buffer.Append(pTabDesc.getNameFull()); //buffer.Append("\""); //buffer.Append(pTableFullName); buffer.Append(" ("); foreach (ColumnDescriptor col in pTabDesc.getColumns()) { //buffer.Append("\""); buffer.Append(col.name); //buffer.Append("\""); buffer.Append(","); } buffer.Remove(buffer.Length - 1, 1); buffer.Append(") VALUES ("); int prmIndx = 0; foreach (ColumnDescriptor col in pTabDesc.getColumns()) { SqliteParameter prm = new SqliteParameter(); ++prmIndx; prm.ParameterName = ToolSqlText.getNewParamName(prmIndx); prm.SourceVersion = DataRowVersion.Current; prm.SourceColumn = col.name; //prm.Size = col.size; listPrm.Add(prm); buffer.Append(prm.ParameterName + ","); } buffer.Remove(buffer.Length - 1, 1); buffer.Append(")"); // pAdp.InsertCommand = environment.getNewSqlCommand(buffer.ToString(), listPrm.ToArray()); }