diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-09-23 21:13:10 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-09-23 21:13:10 +0000 |
| commit | a7866293516d41971e0baa3ad4d2da56326d019b (patch) | |
| tree | 0095ef6bfdeb1e82b7bb16344600867fba4d6f9d /lib/sqlalchemy/engine | |
| parent | 88e98c367ec1c9a99ff20e20944d03624a45dbd0 (diff) | |
| download | sqlalchemy-a7866293516d41971e0baa3ad4d2da56326d019b.tar.gz | |
added scalar() to ResultProxy
Diffstat (limited to 'lib/sqlalchemy/engine')
| -rw-r--r-- | lib/sqlalchemy/engine/base.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 28d5ea94e..1285e8490 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -593,6 +593,7 @@ class ResultProxy: rec = self.props[key] self.__key_cache[key] = rec return rec + def _has_key(self, row, key): try: self._convert_key(key) @@ -624,7 +625,7 @@ class ResultProxy: return self.executioncontext.supports_sane_rowcount() def fetchall(self): - """fetches all rows, just like DBAPI cursor.fetchall().""" + """fetch all rows, just like DBAPI cursor.fetchall().""" l = [] while True: v = self.fetchone() @@ -633,7 +634,7 @@ class ResultProxy: l.append(v) def fetchone(self): - """fetches one row, just like DBAPI cursor.fetchone().""" + """fetch one row, just like DBAPI cursor.fetchone().""" row = self.cursor.fetchone() if row is not None: if self.echo: self.engine.log(repr(row)) @@ -644,6 +645,18 @@ class ResultProxy: # and not just plain tuples ? self.close() return None + + def scalar(self): + """fetch the first column of the first row, and close the result set.""" + row = self.cursor.fetchone() + try: + if row is not None: + if self.echo: self.engine.log(repr(row)) + return row[0] + else: + return None + finally: + self.close() class RowProxy: """proxies a single cursor row for a parent ResultProxy.""" |
