コード例 #1
0
ファイル: ToolTable.cs プロジェクト: rualb/ava-agent-xamarin
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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());
        }