On 2007-05-23 07:29, Carsten Haese wrote: > On Tue, 22 May 2007 17:08:46 -0400, Art Protin wrote >> Separating out the query would greatly reduce the confusion between >> parameters >> and string formatting as then the two would be in separate commands. > > Ah, you mean a "prepared statement" object. This topic comes up from time to > time, but there are at least two DB-API implementations (InformixDB and either > mxODBC or cxOracle, or maybe both) that allow prepared statements without the > clutter of a Query object: The cursor object *is* the query object, in > essence.
Just to confirm: mxODBC does support this approach and it works great for caching cursors with readily prepared statements in long running applications. > For example, in InformixDB you can write: > > conn = informixdb.connect("test") > cur = conn.cursor() > cur.prepare("select * from customer where cust_num = ?") > # later... > cur.execute(cur.command, (1,) ) > > Instead of cur.command, InformixDB also allows passing None as the statement, > which makes for shorter code if the cursor has a long name, which it might, > since the cursor is being used like a prepared statement, so its name should > reflect what it does. The idea behind having cur.command stems from an old optimization that we have in DB-API: if the interface detects that the same command is used for execution, it may reuse the already prepared statement for that command. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 23 2007) >>> 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,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 _______________________________________________ DB-SIG maillist - DB-SIG@python.org http://mail.python.org/mailman/listinfo/db-sig