Howdy, again,
The 0.85 rc1 seems to be a good one! I'm glad that the build got sorted out; the 11/28 nightly was in disarray (the most recent I could find trolling about the nightly build directories). The nightly build download is *very* slow today...
I like the SqlTask a lot; it's about four (4) times faster than osql -E for some inexplicable reason. But something I've whined about before is the verbosity of the SqlTask, even when verbose is set to false; it turns out that it's just unnecessarily logging a blank line to the output for every empty row in the results. The output isn't very helpful, just:
[sql] [sql] [sql] ad infinitem
for a task that gets executed on X servers in Y databases in a loop for Z script files, which makes for a lot of wasted build log space, defined like so:
<sql connstring="Provider=SQLOLEDB;Data Source=${targetserver};Initial Catalog=Customer${targetmarketid};Integrated Security=SSPI;" print="false" source="${sprocfile}" expandprops="true" delimstyle="Line" delimiter="GO" verbose="false" batch="false" transaction="false" failonerror="true" />
The five highlighted lines below keep me from having 10,000-line build reports when all the stored procedures in a framework are delivered to multiple databases on multiple servers. Hence, this patch simply skips writing a blank separator line to the output when the results line is empty. Feel free to include or ignore it in CVS as you see fit.
Line 454 and following:
// output results bool sepLine = false; while (results.Read()) { bool first = true; StringBuilder line = new StringBuilder(100); for (int i = 0; i < results.FieldCount; i++) { if (first) { first = false; } else { line.Append(", "); } line.Append(QuoteChar); line.Append(results[i].ToString()); line.Append(QuoteChar); } sepLine = (line.Length > 0); writer.WriteLine(line.ToString()); } if (sepLine) { writer.WriteLine(); }
|