Beispiel #1
0
 public override void GenSql(ISqlDumper dmp)
 {
     Expr.GenSql(dmp);
     if (_alias != null)
     {
         dmp.Put(" ^as %i", _alias);
     }
 }
Beispiel #2
0
 public override void GenSql(ISqlDumper dmp)
 {
     if (Condition != null)
     {
         dmp.Put("&n^having &>");
         Condition.GenSql(dmp);
         dmp.Put("&<");
     }
 }
Beispiel #3
0
 public abstract void PutLogMessage(
     ISqlDumper dmp, 
     string operationExpr, 
     string targetEntityExpr, 
     string messageExpr, 
     string durationExpr, 
     string procedureExpr, 
     string rowsExpr,
     IShellContext context);
Beispiel #4
0
 public static void PutEditorInfo(ISqlDumper dmp, string editorInfo)
 {
     if (editorInfo == null) return;
     dmp.Put("&n-- *** EDITOR-INFO-BEGIN ***&n");
     foreach (var line in editorInfo.Split('\n'))
     {
         dmp.Put("-- %s&n", line.TrimEnd());
     }
     dmp.Put("-- *** EDITOR-INFO-END ***&n");
 }
Beispiel #5
0
 public static void GenSql(this DmlfSortOrderType type, ISqlDumper dmp)
 {
     switch (type)
     {
         case DmlfSortOrderType.Ascending:
             dmp.Put("^asc");
             break;
         case DmlfSortOrderType.Descendning:
             dmp.Put("^desc");
             break;
     }
 }
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("(");
     bool was = false;
     foreach(var item in Items)
     {
         if (was) dmp.Put("+");
         item.GenSql(dmp);
         was = true;
     }
     dmp.Put(")");
 }
Beispiel #7
0
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("^insert ^into  %f ", InsertTarget);
     dmp.Put("(%,i) ^ values (", Columns.Select(x => x.TargetColumn));
     for (int i = 0; i < Columns.Count; i++)
     {
         if (i > 0) dmp.Put(", ");
         Columns[i].Expr.GenSql(dmp);
     }
     dmp.Put(")");
     dmp.EndCommand();
 }
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put(" ^row_number() ^over (^order ^by ");
     bool was = false;
     foreach (var col in OrderBy)
     {
         if (was) dmp.Put(", ");
         col.GenSql(dmp);
         was = true;
     }
     dmp.Put(")");
 }
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put(" %k(", FuncName);
     bool was = false;
     foreach (var arg in Arguments)
     {
         if (was) dmp.Put(",");
         was = true;
         arg.GenSql(dmp);
     }
     dmp.Put(")");
 }
Beispiel #10
0
        public SqlScriptCompiler(IDatabaseFactory factory, DataSyncSqlModel datasync, IShellContext context, string procName)
        {
            _context = context;
            _procName = procName;
            _datasync = datasync;
            _factory = factory;

            _sw = new StringWriter();
            var so = new SqlOutputStream(factory.CreateDialect(), _sw, new SqlFormatProperties());
            so.OverrideCommandDelimiter(";");
            _dmp = factory.CreateDumper(so, new SqlFormatProperties());
        }
Beispiel #11
0
        protected void GenerateFrom(ISqlDumper dmp)
        {
            dmp.Put("&n^from &>");

            bool wasfromItem = false;
            foreach (var fromItem in From)
            {
                if (wasfromItem) dmp.Put(",&n");
                fromItem.GenSql(dmp);
                wasfromItem = true;
            }
            dmp.Put("&<");
        }
Beispiel #12
0
        public override void GenSql(ISqlDumper dmp)
        {
            dmp.Put("^update ");
            if (TopRecords != null) dmp.Put("^top(%s) ", TopRecords);
            if (UpdateTarget != null) UpdateTarget.GenSqlRef(dmp);
            dmp.Put("&n^set ");
            Columns.GenSql(dmp);

            if (dmp.Factory.DialectCaps.AllowUpdateFrom)
            {
                GenerateFrom(dmp);
            }

            if (Where != null) Where.GenSql(dmp);
        }
Beispiel #13
0
        public override void GenSql(ISqlDumper dmp)
        {
            dmp.Put("^delete ");
            if (TopRecords != null) dmp.Put("^top(%s) ", TopRecords);

            if (dmp.Factory.DialectCaps.AllowDeleteFrom)
            {
                if (DeleteTarget != null) DeleteTarget.GenSqlRef(dmp);
                GenerateFrom(dmp);
            }
            else
            {
                dmp.Put("^from ");
                if (DeleteTarget != null) DeleteTarget.GenSqlRef(dmp);
            }

            if (Where != null) Where.GenSql(dmp);
        }
Beispiel #14
0
 public static void GenSql(this DmlfJoinType join, ISqlDumper dmp)
 {
     switch (join)
     {
         case DmlfJoinType.Inner:
             dmp.Put("^inner ^join");
             break;
         case DmlfJoinType.Left:
             dmp.Put("^left ^join");
             break;
         case DmlfJoinType.Right:
             dmp.Put("^right ^join");
             break;
         case DmlfJoinType.Outer:
             dmp.Put("^full ^outer ^join");
             break;
         case DmlfJoinType.CrossApply:
             dmp.Put("^cross ^apply");
             break;
         case DmlfJoinType.OuterApply:
             dmp.Put("^outer ^apply");
             break;
     }
 }
Beispiel #15
0
 public override void GenSqlEmpty(ISqlDumper dmp)
 {
     dmp.Put("(1=1)");
 }
Beispiel #16
0
 public override void GenSql(ISqlDumper dmp)
 {
     if (Conditions.Count == 0)
     {
         GenSqlEmpty(dmp);
     }
     else
     {
         GenSqlBegin(dmp);
         bool was = false;
         bool isIndent = false;
         foreach (var item in Conditions)
         {
             if (was)
             {
                 if (!isIndent)
                 {
                     dmp.Put("&>");
                     isIndent = true;
                 }
                 dmp.Put("&n");
                 GenSqlConjuction(dmp);
             }
             GenSqlItem(item, dmp);
             was = true;
         }
         GenSqlEnd(dmp);
         if (isIndent) dmp.Put("&<");
     }
 }
Beispiel #17
0
 public virtual void GenSqlItem(DmlfConditionBase item, ISqlDumper dmp)
 {
     item.GenSql(dmp);
 }
Beispiel #18
0
 public void GenerateScript(TableDataScript script, TableDataSetProperties props, ISqlDumper dmp)
 {
 }
Beispiel #19
0
 protected abstract void DumpOperator(ISqlDumper dmp);
 public void GenerateScript(TableDataScript script, TableDataSetProperties props, ISqlDumper dmp)
 {
     throw new NotImplementedError("DAE-00381");
 }
Beispiel #21
0
 public override void GenSql(ISqlDumper dmp)
 {
     Expr.GenSql(dmp);
     dmp.Put(" ^is ^not ^null");
 }
Beispiel #22
0
 public override void GenSql(ISqlDumper dmp)
 {
     Expr.GenSql(dmp);
 }
 public void SaveChanges(BedTable table, ISqlDumper dmp)
 {
     throw new NotImplementedError("DAE-00380");
 }
Beispiel #24
0
 public override void GenSql(ISqlDumper dmp)
 {
     LeftExpr.GenSql(dmp);
     dmp.Put("<");
     RightExpr.GenSql(dmp);
 }
Beispiel #25
0
 protected override void DumpOperator(ISqlDumper dmp)
 {
     dmp.Put(" ^not ^between ");
 }
Beispiel #26
0
 public override void GenSqlConjuction(ISqlDumper dmp)
 {
     dmp.Put(" ^or ");
 }
Beispiel #27
0
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("(1=0)");
 }
Beispiel #28
0
 public override void GenSql(ISqlDumper dmp)
 {
     Expr.GenSql(dmp);
     dmp.Put(" ");
     OrderType.GenSql(dmp);
 }
Beispiel #29
0
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("^not ^exists (");
     Select.GenSql(dmp);
     dmp.Put(")");
 }
 public override void GenSql(ISqlDumper dmp)
 {
     Column.GenSql(dmp);
 }
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.AllowIdentityInsert(TableName, AllowIdentityInsert);
 }
Beispiel #32
0
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("&r"); // dump separator if needed
     dmp.WriteRaw(_literal);
 }
Beispiel #33
0
        public override void PutLogMessage(
            ISqlDumper dmp, 
            string operationExpr, 
            string targetEntityExpr, 
            string messageExpr, 
            string durationExpr, 
            string procedureExpr, 
            string rowsExpr,
            IShellContext context)
        {
            if (String.IsNullOrEmpty(TableName)) return;
            var fullName = new NameWithSchema(context.Replace(TableSchema), context.Replace(TableName));

            var insert = new DmlfInsert();
            insert.InsertTarget = fullName;

            if (!String.IsNullOrEmpty(OperationColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = OperationColumn,
                    Expr = new DmlfSqlValueExpression { Value = operationExpr },
                });
            }
            if (!String.IsNullOrEmpty(MessageColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = MessageColumn,
                    Expr = new DmlfSqlValueExpression { Value = messageExpr },
                });
            }
            if (!String.IsNullOrEmpty(DurationColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = DurationColumn,
                    Expr = new DmlfSqlValueExpression { Value = durationExpr },
                });
            }
            if (!String.IsNullOrEmpty(TargetEntityColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = TargetEntityColumn,
                    Expr = new DmlfSqlValueExpression { Value = targetEntityExpr },
                });
            }
            if (!String.IsNullOrEmpty(MessageDateColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = MessageDateColumn,
                    Expr = new DmlfSqlValueExpression { Value = "GETDATE()" },
                });
            }
            if (!String.IsNullOrEmpty(ImportDateColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = ImportDateColumn,
                    Expr = SqlScriptCompiler.ImportDateTimeExpression,
                });
            }
            if (!String.IsNullOrEmpty(ProcedureColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = ProcedureColumn,
                    Expr = new DmlfSqlValueExpression { Value = procedureExpr },
                });
            }
            if (!String.IsNullOrEmpty(RowsColumn))
            {
                insert.Columns.Add(new DmlfUpdateField
                {
                    TargetColumn = RowsColumn,
                    Expr = new DmlfSqlValueExpression { Value = rowsExpr },
                });
            }

            if (insert.Columns.Any())
            {
                insert.GenSql(dmp);
                dmp.Put("&n");
            }
        }
Beispiel #34
0
 public abstract void GenerateSql(ISqlDumper dmp);
Beispiel #35
0
 public override void GenerateSqlRow(IBedRecord row, ISqlDumper dmp, string[] selcolumns)
 {
     dmp.Put("^delete ^from %f ", FullTableName);
     GenerateWhere(row, dmp, selcolumns);
     dmp.EndCommand();
 }
Beispiel #36
0
 public virtual void GenerateSql(ISqlDumper dmp)
 {
     throw new NotImplementedError("DAE-00107");
 }
Beispiel #37
0
 public virtual void GenSqlEnd(ISqlDumper dmp)
 {
     dmp.Put(")");
 }
Beispiel #38
0
 public abstract void GenSqlEmpty(ISqlDumper dmp);
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("&r"); // dump separator if needed
     dmp.WriteRaw(Value);
 }
Beispiel #40
0
 public abstract void GenSqlConjuction(ISqlDumper dmp);
 public override void GenSql(ISqlDumper dmp)
 {
     dmp.Put("^count(^distinct ");
     Argument.GenSql(dmp);
     dmp.Put(")");
 }
Beispiel #42
0
 public virtual void GenerateSqlRow(IBedRecord row, ISqlDumper dmp, string[] selcolumns)
 {
     throw new NotImplementedError("DAE-00106");
 }