public override void Visit(SQLObject.Parameter param) { _Query.Append(_Driver.FormatParameter(param.Name)); }
public override void Visit(SQLObject.Constant constant) { _Query.Append(constant.Value).Append(Separator); }
public override void Visit(SQLObject.DropTableSQLCommand command) { }
public override void Visit(SQLObject.Column column) { }
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); }
public override void Visit(SQLObject.WhereClause whereClause) { whereClause.SearchCondition.Accept(this); }
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); } }
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(); }
public override SQLObject.ISQLExpression Page(SQLObject.ISQLExpression sqlExp, SQLObject.OrderByClause orderby, int topPage, int pageSize) { return sqlExp; }
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; }
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; } }