[DB-SIG] Cursor.description when Cursor.rowcount == 0
M.-A. Lemburg
mal at egenix.com
Fri Nov 10 19:03:46 CET 2006
Art Protin wrote:
> Dear folks,
> On testing and documenting my implementation of the V2 DB API Spec,
> I am bothered
> by my (limited) understanding of what the spec says for the behavior of
> Cursor.description .
> Clearly when a query (or rather an SQL statement) does not produce a
> result, .description should be None.
It is common practice to do
cursor.execute('select * from mytable where 1=0')
print cursor.description
to access the schema of a table.
> However, not producing a result is
> not the same as producing a table of
> zero rows by one or more columns. (This is like the distinction between
> the two comparisons
> "" == False
> and
> "" is False
> , the empty string has the same 'value' as False while remaining distinct.)
> I do not know that this will ever make a difference to my users
> but I am expected
> to be precise in my implementation. Is it the general understanding
> that .description
> will return None whenever the result set has no rows?
cursor.description always refers to a result set. If a statement
does not produce a result set, then .description should be None.
However, a result set may have length 0 (as in the example above),
so .rowcount==0 is not a good inidicator.
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, Nov 10 2006)
>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the DB-SIG
mailing list