diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-13 22:53:05 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-13 22:53:05 +0000 |
| commit | e7aaeb28527d27814cb192e1ddc4af228a43d816 (patch) | |
| tree | ed36612431a3f845cb580f5b2d25e4398f44213e /lib | |
| parent | 238e8620ee2556d86ecd2ca6a430de990951d514 (diff) | |
| download | sqlalchemy-e7aaeb28527d27814cb192e1ddc4af228a43d816.tar.gz | |
- fixed argument passing to straight textual execute() on engine, connection.
can handle *args or a list instance for positional, **kwargs or a dict instance
for named args, or a list of list or dicts to invoke executemany()
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/engine/base.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 3ec3e028f..1985bcec1 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -260,13 +260,19 @@ class Connection(Connectable): self.__connection.close() self.__connection = None del self.__connection - def scalar(self, object, parameters=None, **kwargs): - return self.execute(object, parameters, **kwargs).scalar() + def scalar(self, object, *multiparams, **params): + return self.execute(object, *multiparams, **params).scalar() def execute(self, object, *multiparams, **params): return Connection.executors[type(object).__mro__[-2]](self, object, *multiparams, **params) def execute_default(self, default, **kwargs): return default.accept_schema_visitor(self.__engine.dialect.defaultrunner(self.__engine, self.proxy, **kwargs)) - def execute_text(self, statement, parameters=None): + def execute_text(self, statement, *multiparams, **params): + if len(multiparams) == 0: + parameters = params + elif len(multiparams) == 1 and (isinstance(multiparams[0], list) or isinstance(multiparams[0], dict)): + parameters = multiparams[0] + else: + parameters = list(multiparams) cursor = self._execute_raw(statement, parameters) rpargs = self.__engine.dialect.create_result_proxy_args(self, cursor) return ResultProxy(self.__engine, self, cursor, **rpargs) |
