[DB-SIG] Multiple Statements

M.-A. Lemburg mal@lemburg.com
Wed, 29 May 2002 09:22:44 +0200

Andy Dustman wrote:
> On Tue, 2002-05-28 at 15:36, Gerhard H=E4ring wrote:
>>From my interpretation of the DB-API specfication, it's not possible to
>>put multiple SELECT statements into one execute() call. That's what
>>.executemany() with .nextset() is for, right? Do I really have to
>>support this in a DB-API compliant module, though?
> Nearly all DB-API modules I have seen require a single statement passed
> to either execute() or executemany(), i.e. no multiple statement
> queries. nextset() is for SELECTs which return multiple result sets;
> I've never seen this used.

The usual place where you'd find .nextset() used is when
calling stored pocedures which result in multiple result

Having multiple statements in a single .execute() is normally
not allowed by the databases (unless maybe you are defining
a stored procedure in which case the multiple statements
are wrapped up in a single procedure defining statement).

>>What about multiple non-SELECT SQL statements seperated by ; in an
>>execute() call (read: INSERT, UPDATE, PRAGMA).  Would this be valid?
>>Again I personally would use executemany(). I'm just wondering if I hav=
>>to have to account for it in an execute() call.
> Also, the only thing I have ever seen executemany() used for is a
> multi-row INSERT.

Marc-Andre Lemburg
CEO eGenix.com Software GmbH
Company & Consulting:                           http://www.egenix.com/
Python Software:                   http://www.egenix.com/files/python/
Meet us at EuroPython 2002:                 http://www.europython.org/