Beispiel #1
0
        private ColumnStructure FindeColumnByName(string columnName, DataBaseStructure inDatabase)
        {
            ColumnStructure outColumn = new ColumnStructure("ERROR");

            foreach (TableStructure inDatabaseTable in inDatabase.Tables)
            {
                foreach (ColumnStructure column in inDatabaseTable.Columns)
                {
                    if (column.OldName == columnName)
                    {
                        outColumn = column;
                    }
                    else
                    {
                        if (column.Name == columnName)
                        {
                            outColumn = column;
                        }
                    }
                }
            }

            if (outColumn.Name == "ERROR")
            {
                // MessageBox.Show(this.GetType().Name + "FindeColumnByName");
            }

            return(outColumn);
        }
Beispiel #2
0
 public AsTypeCalculator(string mathExpression, DataBaseStructure inDatabase, string aggregationFunctionName, List <ColumnStructure> columns)
 {
     _mathExpression          = mathExpression;
     _inDatabase              = inDatabase;
     _aggregationFunctionName = aggregationFunctionName;
     _columns = columns;
 }
Beispiel #3
0
        private S_Type FindeByName(DataBaseStructure inDb, string typeName)
        {
            S_Type output = null;

            foreach (S_Type type in inDb.Types)
            {
                if (type.Name == typeName)
                {
                    output = type;
                    break;
                }
            }
            return(output);
        }
Beispiel #4
0
        public string BuildSqlCommand(DataBaseStructure db, DbCommand c, ref int counter)
        {
            var t = new object[Params.Count];

            for (int i = 0; i < t.Length; i++)
            {
                var val = Params[i];
                var p   = c.CreateParameter();
                p.ParameterName = (++counter).ToString();
                p.Value         = val;
                t[i]            = "@" + p.ParameterName;
                c.Parameters.Add(p);
            }
            return(string.Format(FormatCommand.ToString(), t));
        }
Beispiel #5
0
        public void FindeTable(DataBaseStructure db)
        {//кривой цикл продумать лучше. Попробовать сделать через Column.Table
            _asTables           = new List <TableStructure>();
            _asRightColumn      = new ColumnStructure(_asRightName);
            _asRightColumn.Size = -1;
            foreach (var col in _asColumnList)     //определение типа столбца
            {
                foreach (var tb in db.Tables)
                {
                    foreach (var cl in tb.Columns)
                    {
                        if (col == cl.Name)
                        {
                            _asTables.Add(tb);
                            if (_asRightColumn.Size < cl.Size)
                            {
                                _asRightColumn.Size   = cl.Size;
                                _asRightColumn.TypeID = cl.TypeID;
                                _asRightColumn.Type   = cl.Type;
                            }
                        }
                    }
                }
            }

            _asTables = _asTables.Distinct().ToList();
            if (_asTables.Count == 1)
            {
                _isSelectPart            = true;
                _table                   = _asTables[0].Name; //переделать в структуру.
                _asRightColumn.IsRenamed = true;
                _asRightColumn.OldName   = _asRightColumn.Name;
                _asRightColumn.Name      = _asTables[0].ShortName + _asRightName;
            }
            else
            {
                _isSelectPart = false;
                _table        = "Error! _asTables.Count";
            }
        }
Beispiel #6
0
 public abstract void UpdateLogins(DataBaseStructure database);
Beispiel #7
0
        public NewSortStructure(string name, BaseRule sortRule, DataBaseStructure fullDataBase, int DELETER)
        {
            _name                = name;
            _sortRule            = sortRule;
            _sortRule.Text      += ";";
            _sortRule.IsRealised = true;
            _inDataBase          = fullDataBase;
            ParseTreeWalker walker = new ParseTreeWalker();

            walker.Walk(_listener, sortRule.Context);
            _asStructures = _listener.AsStructures;
            _asStructures.Reverse();
            List <TableStructure>  tmpTableList      = new List <TableStructure>();
            List <ColumnStructure> tmpColumnList     = new List <ColumnStructure>();
            List <ColumnStructure> orderedColumnList = new List <ColumnStructure>();

            foreach (TableStructure inTable in _inDataBase.Tables)
            {
                foreach (ColumnStructure inColumn in inTable.Columns)
                {
                    foreach (string columnName in _listener.SelectColumnNames)
                    {
                        if (columnName == inColumn.Name)
                        {
                            tmpColumnList.Add(inColumn);
                        }
                    }
                }

                //if (tmpColumnList.Count > 0)
                //{
                //    tmpTableList.Add(new TableStructure(inTable.Name, tmpColumnList.ToArray()));
                //}
            }



            foreach (string columnName in _listener.SelectAsRightColumns)
            {
                foreach (SchemeAsStructure asStructure in _asStructures)
                {
                    asStructure.FillAsStructure(_inDataBase);
                    asStructure.FillCrossAsStructutre(_asStructures, _inDataBase);
                    if (asStructure.AsRightColumn.Name == columnName)
                    {
                        tmpColumnList.Add(asStructure.AsRightColumn);
                    }
                }
            }

            foreach (string columnName in _listener.SelectColumnNames)
            {
                foreach (SchemeAsStructure asStructure in _asStructures)
                {
                    asStructure.FillAsStructure(_inDataBase);
                    asStructure.FillCrossAsStructutre(_asStructures, _inDataBase);
                    if (asStructure.AsRightColumn.Name == columnName)
                    {
                        tmpColumnList.Add(asStructure.AsRightColumn);
                    }
                }
            }

            foreach (string orderColumn in _listener.SelectColumnsOrded)
            {
                foreach (ColumnStructure column in tmpColumnList)
                {
                    if (orderColumn == column.Name)
                    {
                        orderedColumnList.Add(column);
                    }
                }
            }

            //tmpColumnList = orderedColumnList;

            if (tmpColumnList.Count > 0)
            {
                tmpTableList.Add(new TableStructure("SORT_OUT_TABLE", tmpColumnList.ToArray()));
            }
            if (tmpTableList.Count > 0)
            {
                _outDataBase = new DataBaseStructure("SORT_OUT_DB", tmpTableList.ToArray(), _inDataBase.Types);
            }

            for (int i = 0; i < _outDataBase.Tables[0].Columns.Length; i++)
            {
                if (_outDataBase.Tables[0].Columns[i].Type != null)
                {
                    _createTableColumnNames += _outDataBase.Tables[0].Columns[i].Name + " " + _outDataBase.Tables[0].Columns[i].Type.Name;
                }
                else
                {
                    _createTableColumnNames += _outDataBase.Tables[0].Columns[i].Name + " " + "INTEGER";
                }

                if (i < _outDataBase.Tables[0].Columns.Length - 1)
                {
                    _createTableColumnNames += ",\r\n";
                }
            }

            _sortRule.IsRealised = false;
            _output = _sortRule.Text + ";";
            //SetIndexes();
        }
Beispiel #8
0
 public DatabaseUpdator(DataBaseStructure d) => this.d = d;
Beispiel #9
0
 protected abstract void GetOwner(DataBaseStructure d, Path c);
Beispiel #10
0
        public string BuildSqlCommand(DataBaseStructure db, System.Data.Common.DbCommand c)
        {
            var i = 0;

            return(BuildSqlCommand(db, c, ref i));
        }
Beispiel #11
0
 public string BuildSqlCommand(DataBaseStructure db, System.Data.Common.DbCommand c, ref int i)
 {
     return(Operation == SqlOperation.Update ? Data.GetUpdate(c, ref i) : Operation == SqlOperation.Insert ? Data.GetInsert(c, ref i) : Data.GetDelete(c));
 }
Beispiel #12
0
 public SchemeCreator(DataBaseStructure inDataBase, List <SelectStructure> inSelectStructures)
 {
     _inDatabase         = inDataBase;
     _inSelectStructures = inSelectStructures;
 }
Beispiel #13
0
 public JoinOptimizer(List <List <JoinStructure> > inputJoins, DataBaseStructure inDatabase)
 {
     _inputJoinSequences = inputJoins;
     _inDataBase         = inDatabase;
 }