Example #1
0
        public void GetCommands(DmlfBatch res, DatabaseInfo db, IDialectDataAdapter dda, ICdlValueConvertor converter)
        {
            var cmd = new DmlfInsert();
            cmd.InsertTarget = TargetTable;

            var table = db.FindTable(TargetTable);
            if (table == null) return;

            var autoinc = table.FindAutoIncrementColumn();
            bool isAutoInc = autoinc != null && Values.Any(x => x.Column == autoinc.Name);

            GetValues(cmd.Columns, Values, table, dda, converter);

            if (isAutoInc)
            {
                res.AllowIdentityInsert(table.FullName, true);
            }

            res.Commands.Add(cmd);

            if (isAutoInc)
            {
                res.AllowIdentityInsert(table.FullName, false);
            }
        }
Example #2
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");
            }
        }