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();

}

 

Reply via email to