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); }
public static Sql Echo(this Sql sql) { var text = Dump(sql.ApplyTemplate()); try { System.Diagnostics.Trace.WriteLine(text); } catch { // nada a fazer } return(sql); }