Announcing a new version of adodbapi...<br><br>[ for those who may not know...<br>[ adodbapi is a pure Python package which fully implements the PEP-249 db-api<br>[ using Microsoft ADO/db.<br>[ It runs on CPython versions 2.3 and later, IronPython 2.6 and later,<br>

[ or Python 3.0 and later.<br><br>I have often been frustrated by the need to count &#39;?&#39; marks for input parameters<br>and remembering column numbers to get my SQL output.  <br>This release fixes that by allowing the use of &#39;named&#39; parameters as an option, <br>

and by returning &#39;SQLrow&#39; objects which allow the use of column names.<br><br>This version includes a distutils setup.py file, so installation is easy. <br>Just<br>  1) unzip<br>  2) &quot;cd&quot; to the directory you just unzipped.<br>

  2) Execute the command:<br>          python setup.py install<br>      using the python distribution of your choice.<br>It even runs 2to3 automatically if you run it using a 3.n Python.<br>(Why didn&#39;t I do this years ago?)<br>

<br>NOTE:  on Vista (and 7?) you must run setup.py using the administrator account to install on IronPython,<br>because setup.py does not elevate privileges for the source installer.<br>(Distutils can create a stand-alone binary installer which does elevate privileges, but that feature is not yet supported by IronPython because it has no zip library.)<br>

<br>ALSO NOTE: I have _used_ this package with IronPython 2.7.A1, but not _tested_ it, because 2.7&#39;s unittest package is broken.<br><br>Here&#39;s what&#39;s new............................<br><br>* adodbapi version 2.4.0 -- in this version,<br>

   &quot;fetchall()&quot; and &quot;fetchmany()&quot; return an SQLrows object <br>   ...which emulates a sequence of SQLrow objects.<br>   &quot;fetchone()&quot; or the cursor&#39;s &quot;next()&quot; method return an SQLrow object.<br>

   An SQLrow object emulates a tuple of data fields.<br>   An SQLrow object also appears to have an attribute for each column of data.<br>   therefore...<br>   &gt;&gt;&gt; import adodbapi<br>   &gt;&gt;&gt; myConnection = adodbapi.connection(&#39;someDSN&#39;)<br>

   &gt;&gt;&gt; cur = myConnection.cursor()<br>   &gt;&gt;&gt; cur.execute(&quot;select name, rank, serialNumber from soldiers&quot;)<br>   &gt;&gt;&gt; row = cur.fetchone()<br>   &gt;&gt;&gt; assert row[0] == row[&#39;name&#39;]<br>

   &gt;&gt;&gt; assert row[1] == row.rank<br>   &gt;&gt;&gt; rows = cur.fecthall()<br>   &gt;&gt;&gt; assert rows[4,&#39;serialNumber&#39;] == rows[4][2]<br><br>* adodbapi version 2.3.0 -- this is includes major refactoring and<br>

   specifically adds features for django support, including the ability for the<br>   programmer to change ado&#39;s SQL &quot;paramstyle&quot; at run time to select between<br>   &#39;qmark&#39;, &#39;format&#39; and &#39;named&#39; methods of passing SQL parameters.<br>

** also, in response to user requests, adodbapi will now use client-side<br>   cursors by default.  This will make rowcount and stored procedure return <br>   parameter values more readily available.<br> <br>