Aquileo | Recent changes to bugshttps://sourceforge.net/p/tclsql/bugs/2005-08-05T00:37:26ZRecent changes to bugsAquileo | prints out "GetColumnHeaders: 0"2005-08-05T00:37:26Z2005-08-05T00:37:26ZAnonymoushttps://sourceforge.net/u/userid-None/https://sourceforge.net89dc443f292b77a364766e5b9d330134f6b2553c<div class="markdown_content"><p>the following code:</p>
<p>#select * from pagosprueb</p>
<p>package require SQL<br />
namespace import -force ::SQL::*</p>
<p>if { [catch {<br />
if {[llength $argv] < 2 } { <br />
puts { usage: tclsh dumpdb.tcl \"sqlquery\" numfields</p>
<div class="codehilite"><pre><span class="o">+</span><span class="n">numfields</span> <span class="n">is</span> <span class="n">the</span> <span class="n">number</span> <span class="n">of</span> <span class="n">fields</span> <span class="n">u</span> <span class="n">spect</span><span class="p">,</span>
<span class="o">+</span><span class="n">sqlquery</span> <span class="n">is</span> <span class="n">the</span> <span class="n">query</span> <span class="n">to</span> <span class="n">fetch</span><span class="p">,</span> <span class="n">like</span>
"<span class="n">select</span> <span class="o">\*</span> <span class="n">from</span> <span class="n">that</span> <span class="n">where</span> <span class="n">this</span><span class="p">=</span><span class="n">that</span><span class="o">\</span><span class="n">_other</span><span class="o">\</span><span class="n">_thing</span>"
<span class="o">\</span><span class="p">}</span>
<span class="n">exit</span>
<span class="o">\</span><span class="p">}</span>
<span class="n">set</span> <span class="n">query</span> <span class="o">\</span><span class="p">[</span><span class="n">lindex</span> $<span class="n">argv</span> 0<span class="o">\</span><span class="p">]</span>
<span class="n">set</span> <span class="n">numfields</span> <span class="o">\</span><span class="p">[</span><span class="n">lindex</span> $<span class="n">argv</span> 1<span class="o">\</span><span class="p">]</span>
<span class="n">set</span> <span class="n">myHandle</span> <span class="o">\</span><span class="p">[</span><span class="n">SQLConnect</span> <span class="n">qgpl</span> "<span class="n">administrador</span>" "<span class="n">oscar</span>" 10<span class="o">\</span><span class="p">]</span>
<span class="n">set</span> <span class="n">rc</span> ""
<span class="n">set</span> <span class="n">fields</span>
</pre></div>
<p>"pcnit,pccia,t64,DESCRI,CEMPLE,ANOMTR,A121,CCONCE,JDCONC,CC06,email"<br />
#set query "Select t64 from pagosprueb"<br />
set result ""<br />
set headers ""<br />
# Set Max return rows to 100<br />
# $myHandle SQLSetStmtAttr SQL_ATTR_MAX_ROWS 1000<br />
# Set Query Time out to 10 secons<br />
$myHandle SQLSetStmtAttr SQL_ATTR_QUERY_TIMEOUT 10</p>
<div class="codehilite"><pre><span class="n">set</span> <span class="n">rc</span> <span class="o">\</span><span class="p">[</span>$<span class="n">myHandle</span> <span class="n">SQLExecDirect</span> $<span class="n">query</span><span class="o">\</span><span class="p">]</span>
<span class="n">set</span> <span class="n">head</span> ""
<span class="n">set</span> <span class="n">rows</span> 0
<span class="o">\</span># <span class="n">Was</span> <span class="n">the</span> <span class="n">query</span> <span class="n">successful</span>?
<span class="n">puts</span> "<span class="o">&</span><span class="n">lt</span><span class="p">;</span>?<span class="n">xml</span> <span class="n">version</span><span class="p">=</span><span class="o">\</span>"1<span class="p">.</span>0<span class="o">\</span>" ?<span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="o">\</span><span class="n">n</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">package</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="o">\</span><span class="n">n</span><span class="o">\</span><span class="n">t</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">data</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>"
<span class="k">while</span> <span class="o">\</span><span class="p">{</span>$<span class="n">rc</span> <span class="o">==</span> 0 <span class="o">||</span> $<span class="n">rc</span> <span class="o">==</span> 1<span class="o">\</span><span class="p">}</span> <span class="o">\</span><span class="p">{</span>
<span class="n">set</span> <span class="n">rc</span> <span class="o">\</span><span class="p">[</span>$<span class="n">myHandle</span> <span class="n">SQLFetch</span> <span class="n">result</span> <span class="n">headers</span><span class="o">\</span><span class="p">]</span>
<span class="k">if</span> <span class="o">\</span><span class="p">{</span> $<span class="n">rc</span> <span class="o">==</span> 0 <span class="o">||</span> $<span class="n">rc</span> <span class="o">==</span> 1<span class="o">\</span><span class="p">}</span> <span class="o">\</span><span class="p">{</span>
<span class="n">set</span> <span class="n">head</span> ""
<span class="n">puts</span> "<span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">row</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>"
<span class="n">set</span> <span class="n">n</span> 0
<span class="n">foreach</span> <span class="n">a</span> $<span class="n">result</span> <span class="o">\</span><span class="p">{</span>
<span class="k">if</span> <span class="o">\</span><span class="p">{</span>$<span class="n">n</span> <span class="o">&</span><span class="n">gt</span><span class="p">;=</span> $<span class="n">numfields</span><span class="o">\</span><span class="p">}</span> <span class="o">\</span><span class="p">{</span>
<span class="n">puts</span> "<span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>$<span class="n">a</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>"
<span class="o">\</span><span class="p">}</span> <span class="k">else</span> <span class="o">\</span><span class="p">{</span>
<span class="n">set</span> <span class="n">head</span> "$<span class="n">head</span><span class="o">\</span><span class="n">n</span><span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>$<span class="n">a</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>"
<span class="o">\</span><span class="p">}</span>
<span class="n">incr</span> <span class="n">n</span>
<span class="o">\</span><span class="p">}</span>
<span class="n">puts</span> "<span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">row</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>"
<span class="n">incr</span> <span class="n">rows</span>
<span class="o">\</span><span class="p">}</span>
<span class="o">\</span><span class="p">}</span>
<span class="n">puts</span>
</pre></div>
<p>"\t</data>\n\t<headers>$head\n\t</headers>\n\t<query>$query</query>\n\t<rows>$rows</rows>\n\t<fields>$numfields</fields>\n</package>"<br />
$myHandle SQLDisconnect</p>
<p>} doRequestCatch] } {<br />
puts "SQL_ERROR: $doRequestCatch"<br />
}<br />
# Some possible return values:<br />
#<br />
# SQL_SUCCESS 0<br />
# SQL_SUCCESS_WITH_INFO 1<br />
# SQL_NO_DATA 100<br />
# SQL_ERROR (-1)<br />
# SQL_INVALID_HANDLE (-2)<br />
# SQL_STILL_EXECUTING 2<br />
# SQL_NEED_DATA 99</p>
<p>produces the following output:</p>
<p><?xml version="1.0" ?><br />
<package><br />
<data><br />
<row><br />
<cell>830060430</cell><br />
<cell> </cell><br />
<cell>11001.0</cell><br />
<cell>BOGOTA</cell><br />
<cell>6.0</cell><br />
<cell>MELO CONTRERAS MARTHA E</cell><br />
<cell>51550255.0</cell><br />
<cell>1500.0</cell><br />
<cell>PROMEDIO (RECARGOS) VACACIONES</cell><br />
<cell>1610803.00</cell><br />
<cell>lopezcrl@yahoo.es</cell><br />
</row></p>
<p>..... lots of rows deleted for briefness</p>
<div class="codehilite"><pre> <span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">row</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>830060430<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">XEROX</span> <span class="n">DE</span> <span class="n">COLOMBIA</span> <span class="o">----&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>11001<span class="p">.</span>0<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">BOGOTA</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>104<span class="p">.</span>0<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">PINZON</span> <span class="n">VIRVIESCAS</span> <span class="n">DIANA</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>52149211<span class="p">.</span>0<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>7000<span class="p">.</span>0<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">PAGO</span> <span class="n">NETO</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>1977114<span class="p">.</span>00<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">lopezcrl</span><span class="p">@</span><span class="n">yahoo</span><span class="p">.</span><span class="n">es</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">row</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">data</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">headers</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">pcnit</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">pccia</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">t64</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">DESCRI</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">CEMPLE</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">ANOMTR</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">A121</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">CCONCE</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">JDCONC</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">CC06</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">email</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">headers</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">query</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span><span class="n">select</span> <span class="o">\*</span> <span class="n">from</span> <span class="n">pagosprueb</span><span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">query</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">rows</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>414<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">rows</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="n">fields</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>11<span class="o">&</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">fields</span><span class="o">&</span><span class="n">gt</span><span class="p">;</span>
</pre></div>
<p></package><br />
aders: 0GetColumnHeaders: 0GetColumnHeaders:<br />
0GetColumnHeaders: 0GetColumnHeaders:<br />
0GetColumnHeaders: 0GetColumnHeaders: </p>
<p>lots of getcollumnheaders:0 also omited</p>
<p>im working on a win2000 sp 4 1.7ghz with ODBC 3.0 Tcl<br />
Extension and tcl 8.4.11.0 from activestate</p>
<p>this:</p>
<p>GetColumnHeaders: 0</p>
<p>is printed every time i fetch a new row, since the<br />
output of my program is then fed to another program (an<br />
xml parser)<br />
then the output warning generated by the extension is<br />
unacceptable, it should set errno, or whatever it uses<br />
for error handling instead of tossing output into my<br />
xml file, right?</p>
<p>im shure there is a smiple fix for this.... </p>
<p>btw: command line is:</p>
<p>tclsh dumpdb.tcl "select * from pagosprueb" 11 >report.xml</p></div>