Example #1
0
 public override void Visit(SQLObject.Parameter param)
 {
     _Query.Append(_Driver.FormatParameter(param.Name));
 }
Example #2
0
 public override void Visit(SQLObject.Constant constant)
 {
     _Query.Append(constant.Value).Append(Separator);
 }
Example #3
0
 public override void Visit(SQLObject.DropTableSQLCommand command)
 {
 }
Example #4
0
        public override void Visit(SQLObject.Column column)
        {

        }
Example #5
0
        public override void Visit(SQLObject.BinaryLogicExpression expression)
        {
            if (expression.Operator != SQLObject.BinaryLogicOperator.Equals)
                throw new NotImplementedException();

            string columnName;
            if (expression.LeftOperand is SQLObject.Column)
                columnName = ((SQLObject.Column)expression.LeftOperand).ColumnName;
            else
                throw new NotImplementedException();

            columnValueCollection.Add(columnName, expression.RightOperand);
        }
Example #6
0
 public override void Visit(SQLObject.WhereClause whereClause)
 {
     whereClause.SearchCondition.Accept(this);
 }
Example #7
0
        public override void Visit(SQLObject.UpdateCommand updateCommand)
        {
            _Query.Append("-- UPDATE " + updateCommand.TableName).AppendLine();
            columnValueCollection = new Dictionary<string, SQLObject.ISQLExpression>();
            foreach (DictionaryEntry entry in updateCommand.ColumnValueCollection)
                columnValueCollection.Add(entry.Key.ToString(), (SQLObject.ISQLExpression)entry.Value);

            updateCommand.WhereClause.Accept(this);

            foreach (string columnName in tableColumnsOrder[updateCommand.TableName])
            {
                if (columnValueCollection.ContainsKey(columnName))
                    columnValueCollection[columnName].Accept(this);
                else
                    _Query.Append(Separator);
            }
        }
Example #8
0
        public override void Visit(SQLObject.InsertCommand insertCommand)
        {
            _Query.AppendFormat("-- TABLE {0}", insertCommand.TableName).AppendLine();
            columnValueCollection = new Dictionary<string, SQLObject.ISQLExpression>();
            foreach (DictionaryEntry entry in insertCommand.ColumnValueCollection)
                columnValueCollection.Add(entry.Key.ToString(), (SQLObject.ISQLExpression)entry.Value);

            foreach (string columnName in tableColumnsOrder[insertCommand.TableName])
            {
                if (columnValueCollection.ContainsKey(columnName))
                    columnValueCollection[columnName].Accept(this);
                else
                    _Query.Append(Separator);
            }

            columnValueCollection.Clear();
        }
Example #9
0
 public override SQLObject.ISQLExpression Page(SQLObject.ISQLExpression sqlExp, SQLObject.OrderByClause orderby, int topPage, int pageSize)
 {
     return sqlExp;
 }
Example #10
0
        public override SQLObject.ISQLExpression Page(SQLObject.ISQLExpression sqlExp, SQLObject.OrderByClause orderby, int topPage, int pageSize)
        {
            SelectStatement select = CheckAndAdjustExpression(sqlExp, orderby);

            // Has paging ?
            if (topPage != 1)
            {
                // paging

                //SELECT TOP 100 PERCENT y.* FROM 
                //(
                //    SELECT TOP {TopMax} x.*
                //    FROM
                //    (
                //        SELECT TOP {TopFirstPlusMax} e1.Type, e1.Id
                //        {SortSelect}
                //        FROM ( {OPathQuery} ) e1 
                //        {SortFrom}
                //        {SortOrderBy}
                //    )x
                //    {SortOrderBy_REV}
                //)y
                //{SortOrderBy}
                SelectStatement selectY = new SelectStatement(null);
                SelectStatement selectX = new SelectStatement(null);

                // reverse sort order 
                OrderByClause sortOrderByRev = new OrderByClause(select);
                foreach (OrderByClauseColumn col in select.OrderByClause)
                    sortOrderByRev.Add(new OrderByClauseColumn(col.ColumnName, !col.Desc));

                select.Limit = topPage + pageSize - 1;
                select.TableAlias = "x";

                selectX.Limit = pageSize;
                selectX.SelectedAllColumns = true;
                selectX.FromClause.Add(select as Table);
                selectX.OrderByClause = sortOrderByRev;
                selectX.TableAlias = "y";

                selectY.SelectedAllColumns = true;
                selectY.FromClause.Add(selectX as Table);
                selectY.OrderByClause = select.OrderByClause;

                select = selectY;
                select.Limit = -1;
            }
            else
            {
                // only sort, limit possible

                //SELECT [TOP pageSize | TOP 100 PERCENT] XXX
                //FROM XXX WHERE XXX
                //ORDER BY [orderByClause]

                select.Limit = pageSize;
            }

            return select;
        }
Example #11
0
        public DBObjectDifferenceForm(SQLObject sourceItem, SQLObject targetItem)
            : this()
        {
            _sourceItem = sourceItem;
            _targetItem = targetItem;

            _isLoading = true;
            var showSQL        = true;
            var showFields     = true;
            var showParameters = true;

            try
            {
                if (_sourceItem.SQL != null && _targetItem.SQL != null)
                {
                    nHydrate.DslPackage.Objects.Utils.CompareText(txtText1, txtText2, _sourceItem.SQL, _targetItem.SQL);
                }
                else
                {
                    showSQL = false;
                    this.Controls.Remove(pnlMain);
                    this.Controls.Remove(splitterParameter);
                }

                txtText1.ClearUndo();
                txtText2.ClearUndo();
                txtText1.IsChanged = false;
                txtText2.IsChanged = false;

                if (sourceItem.FieldList != null)
                {
                    //Load all source fields
                    foreach (var item in sourceItem.FieldList)
                    {
                        var li = new ListViewItem();
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Name
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.DataType.ToString()
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Length.ToString()
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Nullable.ToString()
                        });

                        var targetField = targetItem.FieldList.FirstOrDefault(x => x.Name == item.Name);
                        if (targetField != null)
                        {
                            li.SubItems.Add(new ListViewItem.ListViewSubItem()
                            {
                                Text = targetField.Name
                            });
                            li.SubItems.Add(new ListViewItem.ListViewSubItem()
                            {
                                Text = targetField.DataType.ToString()
                            });
                            li.SubItems.Add(new ListViewItem.ListViewSubItem()
                            {
                                Text = targetField.Length.ToString()
                            });
                            li.SubItems.Add(new ListViewItem.ListViewSubItem()
                            {
                                Text = targetField.Nullable.ToString()
                            });
                            if (!targetField.Equals(item))
                            {
                                li.BackColor  = nHydrate.DslPackage.Objects.Utils.ColorModified;
                                li.ImageIndex = 2;
                            }
                        }
                        else
                        {
                            li.BackColor  = nHydrate.DslPackage.Objects.Utils.ColorDeleted;
                            li.ImageIndex = 1;
                        }

                        lstFields.Items.Add(li);
                    }

                    //Load all target fields NOT in source
                    var targetFieldList = targetItem.FieldList.Where(x => !sourceItem.FieldList.Select(z => z.Name).ToList().Contains(x.Name));
                    foreach (var item in targetFieldList)
                    {
                        var li = new ListViewItem();
                        li.BackColor        = nHydrate.DslPackage.Objects.Utils.ColorInserted;
                        li.ImageIndex       = 0;
                        li.SubItems[0].Text = string.Empty;
                        li.SubItems.Add(new ListViewItem.ListViewSubItem());
                        li.SubItems.Add(new ListViewItem.ListViewSubItem());
                        li.SubItems.Add(new ListViewItem.ListViewSubItem());

                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Name
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.DataType.ToString()
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Length.ToString()
                        });
                        li.SubItems.Add(new ListViewItem.ListViewSubItem()
                        {
                            Text = item.Nullable.ToString()
                        });
                        lstFields.Items.Add(li);
                    }
                }
                else
                {
                    showFields = false;
                    this.Controls.Remove(pnlFields);
                    this.Controls.Remove(splitterField);
                }

                if (!showSQL)
                {
                    //Entity
                    pnlFields.Dock        = DockStyle.Fill;
                    splitterField.Visible = false;

                    var e1 = sourceItem as Entity;
                    var e2 = targetItem as Entity;

                    var changedText = string.Empty;
                    if (e1.AllowCreateAudit != e2.AllowCreateAudit)
                    {
                        if (!string.IsNullOrEmpty(changedText))
                        {
                            changedText += ", ";
                        }
                        changedText += "Create Audit: " + e1.AllowCreateAudit + " -> " + e2.AllowCreateAudit;
                    }
                    if (e1.AllowModifyAudit != e2.AllowModifyAudit)
                    {
                        if (!string.IsNullOrEmpty(changedText))
                        {
                            changedText += ", ";
                        }
                        changedText += "Modify Audit: " + e1.AllowModifyAudit + " -> " + e2.AllowModifyAudit;
                    }
                    if (e1.AllowTimestamp != e2.AllowTimestamp)
                    {
                        if (!string.IsNullOrEmpty(changedText))
                        {
                            changedText += ", ";
                        }
                        changedText += "Timestamp: " + e1.AllowTimestamp + " -> " + e2.AllowTimestamp;
                    }
                    if (e1.IsTenant != e2.IsTenant)
                    {
                        if (!string.IsNullOrEmpty(changedText))
                        {
                            changedText += ", ";
                        }
                        changedText += "IsTenant: " + e1.IsTenant + " -> " + e2.IsTenant;
                    }

                    if (!string.IsNullOrEmpty(changedText))
                    {
                        lblFieldInfo.Text    = "Changed: " + changedText;
                        lblFieldInfo.Visible = true;
                    }
                }
                else if (showFields && !showParameters)
                {
                    //Views
                }
                else if (showFields && showParameters)
                {
                    //Functions, SP
                }

                this.Text += " " + _sourceItem.ObjectType + ": [" + _sourceItem.Name + "]";
                this.ResizeColumns();
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                this.IsDirty = false;
                _isLoading   = false;
            }
        }