[DB-SIG] DBAPI 3.0: Unified parameter style

Dieter Maurer dieter at handshake.de
Sat Dec 27 18:37:39 CET 2014

Tony Locke wrote at 2013-9-13 18:54 +0100:
> ...
>I thought I'd give a suggestion for unified parameters. Apologies if
>this has been suggested before, I did have a look at the archives :-)
>In DBAPI 2.0, the parameters to execute() can be a sequence or a
>mapping. In DBAPI 3.0, the paramstyle attribute should be removed, and
>the style determined by whether the parameters are a sequence or
>mapping. For a sequence the 'numeric' style is expected, and for a
>mapping the 'named' style. For example:
>execute("select * from emp where name = :1", ['horatio'])
>execute("select * from emp where name = :name", {'name': 'horatio'})
>The reason I like this solution is that if someone asked me how
>parameters work in DBAPI, this one would be the easiest to explain!
>Any thoughts?

This has been suggested and found one objection: there is no reliable
way to distinguish a mapping from a sequence -- or put in
different words: it is easy to define a class which supports both
the sequence as well as the mapping protocol.


More information about the DB-SIG mailing list