Пример #1
0
        public static DbCommand CreateCommand(DbConnection cn, Sql sql)
        {
            sql.ApplyTemplate();

            var command = cn.CreateCommand();

            command.CommandType    = CommandType.Text;
            command.CommandText    = sql.Text;
            command.CommandTimeout = (cn.ConnectionTimeout << 1);
            command.Transaction    = SequelTransactionScope.GetTransactionFor(cn);

            var names =
                from name in sql.ParameterNames
                orderby name.Length descending, name
            select name;

            foreach (var name in names)
            {
                var value = CreateSqlCompatibleValue(sql[name]);

                var parameterName = name;
                var parameter     = command.CreateParameter();
                parameter.ParameterName = parameterName;
                parameter.Value         = value;
                command.Parameters.Add(parameter);
            }

            if (SequelSettings.TraceQueries)
            {
                var message = "---\n" + sql.Beautify() + "\n---\n";
                System.Diagnostics.Trace.WriteLine(message);
            }

            return(command);
        }
Пример #2
0
        public static Sql Echo(this Sql sql)
        {
            var text = Dump(sql.ApplyTemplate());

            try
            {
                System.Diagnostics.Trace.WriteLine(text);
            }
            catch
            {
                // nada a fazer
            }
            return(sql);
        }