On 17.05.2013 18:07, Michael Bayer wrote: > > On May 17, 2013, at 11:36 AM, M.-A. Lemburg <m...@egenix.com> wrote: > >> On 17.05.2013 17:10, Christoph Zwerschke wrote: >>> Am 17.05.2013 17:01, schrieb Vernon D. Cole: >>>> What other options should be considered? >>> >>> Another option would be to get rid of the parameter completely, and >>> silently accept both styles, >>> whatever is used in the sql command passed to the execute method. >> >> This would violate explicit is better than implicit, and it also >> creates problems with raising proper errors, e.g. passing a >> dictionary of parameters to a SQL command which uses a mix >> of qmark and named style parameter markers. >> >> We do need to keep this explicit. > > > IMHO it is explicit, whether you say: > > cursor.execute(stmt, { < dictionary>} ) > > vs. > > cursor.execute(stmt, [ <list>] ) > > the type of parameters passed indicates the style of params to search for. > It's explicit via type inference. if a dictionary is passed, "?" symbols > are left alone. If a list is passed, ":param" symbols are left alone. If > neither is passed, then neither ? nor :param are searched for.
Hmm, then how do you tell whether this code is correct or not ? :-) cursor.execute('select * from mytable where id=?', parameters) Type inference also doesn't help universally, since objects can easily implement both the sequence and mapping ABC. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 17 2013) >>> Python Projects, Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope/Plone.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ 2013-05-07: Released mxODBC Zope DA 2.1.2 ... http://egenix.com/go46 2013-05-06: Released mxODBC 3.2.3 ... http://egenix.com/go45 ::::: Try our mxODBC.Connect Python Database Interface 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 http://www.egenix.com/company/contact/ _______________________________________________ DB-SIG maillist - DB-SIG@python.org http://mail.python.org/mailman/listinfo/db-sig