> On Dec 18, 2014, at 5:39 AM, M.-A. Lemburg <m...@egenix.com> wrote:
> 
> On 17.12.2014 19:13, INADA Naoki wrote:
>> As I said before, prepared statement is normally bound to connection.
>> So `.prepare()` method should be connection's method, not cursor's.
>> 
>> prepared = conn.prepare("SELECT ?+?")
>> ...
>> cur = conn.cursor()
>> cur.execute(prepared, (1, 2))
>> cur.fetchone()  # returns (3,)
> 
> I'm not sure which database you are talking about, but in terms
> of concepts, statements are run on cursors, so adding the method
> to connections doesn't look right (we dropped this logic when moving
> from DB-API 1.0 to 2.0 a long time ago).
> 
> Also note that the prepare step may need access to the
> cursor configuration settings to be correctly interpreted
> by the database.

oh, so are you saying that if one produces a prepared statement from a cursor, 
and then that cursor is closed, I have no option to re-use that prepared 
statement anywhere else, is that right?  

That would make the entire feature a non-starter for me.    SQLAlchemy doesn’t 
hold cursors open beyond a single statement.    My users would very much want a 
prepared-statement-per-transaction object.

JDBC provides prepared statements as a service of the Connection.    I think 
DBAPI should be doing the same.
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
https://mail.python.org/mailman/listinfo/db-sig

Reply via email to