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] &lt; 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> &quot;<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>&quot; <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> &quot;<span class="n">administrador</span>&quot; &quot;<span class="n">oscar</span>&quot; 10<span class="o">\</span><span class="p">]</span> <span class="n">set</span> <span class="n">rc</span> &quot;&quot; <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> &quot;&quot; <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> &quot;<span class="o">&amp;</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>&quot;1<span class="p">.</span>0<span class="o">\</span>&quot; ?<span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="o">\</span><span class="n">n</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">package</span><span class="o">&amp;</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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">data</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>&quot; <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> &quot;&quot; <span class="n">puts</span> &quot;<span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">row</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>&quot; <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">&amp;</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> &quot;<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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>$<span class="n">a</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>&quot; <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> &quot;$<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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>$<span class="n">a</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>&quot; <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> &quot;<span class="o">\</span><span class="n">t</span><span class="o">\</span><span class="n">t</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">row</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>&quot; <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&lt;/data&gt;\n\t&lt;headers&gt;$head\n\t&lt;/headers&gt;\n\t&lt;query&gt;$query&lt;/query&gt;\n\t&lt;rows&gt;$rows&lt;/rows&gt;\n\t&lt;fields&gt;$numfields&lt;/fields&gt;\n&lt;/package&gt;"<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>&lt;?xml version="1.0" ?&gt;<br /> &lt;package&gt;<br /> &lt;data&gt;<br /> &lt;row&gt;<br /> &lt;cell&gt;830060430&lt;/cell&gt;<br /> &lt;cell&gt; &lt;/cell&gt;<br /> &lt;cell&gt;11001.0&lt;/cell&gt;<br /> &lt;cell&gt;BOGOTA&lt;/cell&gt;<br /> &lt;cell&gt;6.0&lt;/cell&gt;<br /> &lt;cell&gt;MELO CONTRERAS MARTHA E&lt;/cell&gt;<br /> &lt;cell&gt;51550255.0&lt;/cell&gt;<br /> &lt;cell&gt;1500.0&lt;/cell&gt;<br /> &lt;cell&gt;PROMEDIO (RECARGOS) VACACIONES&lt;/cell&gt;<br /> &lt;cell&gt;1610803.00&lt;/cell&gt;<br /> &lt;cell&gt;lopezcrl@yahoo.es&lt;/cell&gt;<br /> &lt;/row&gt;</p> <p>..... lots of rows deleted for briefness</p> <div class="codehilite"><pre> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">row</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>830060430<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</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">----&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>11001<span class="p">.</span>0<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">BOGOTA</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>104<span class="p">.</span>0<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>52149211<span class="p">.</span>0<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>7000<span class="p">.</span>0<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">PAGO</span> <span class="n">NETO</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>1977114<span class="p">.</span>00<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">cell</span><span class="o">&amp;</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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">cell</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">row</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">data</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">headers</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">pcnit</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">pccia</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">t64</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">DESCRI</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">CEMPLE</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">ANOMTR</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">A121</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">CCONCE</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">JDCONC</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">CC06</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span><span class="n">email</span><span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">header</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">headers</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">query</span><span class="o">&amp;</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">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">query</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">rows</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>414<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">rows</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> <span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="n">fields</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span>11<span class="o">&amp;</span><span class="n">lt</span><span class="p">;</span><span class="o">/</span><span class="n">fields</span><span class="o">&amp;</span><span class="n">gt</span><span class="p">;</span> </pre></div> <p>&lt;/package&gt;<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 &gt;report.xml</p></div>