diff options
author | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-08-04 14:44:24 +0200 |
---|---|---|
committer | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-08-04 14:44:24 +0200 |
commit | 1ea16bb5f8ad86619a2fbf29ae05c78d943e68e6 (patch) | |
tree | 4800a85d12d31b4c98219aa5e5bb557daec8b5df /db.py | |
parent | a514ba5f86b31372222202c271919f468cec523a (diff) | |
download | logilab-common-1ea16bb5f8ad86619a2fbf29ae05c78d943e68e6.tar.gz |
add Decimal Type support for database apy
Diffstat (limited to 'db.py')
-rw-r--r-- | db.py | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -348,6 +348,17 @@ class _PySqlite2Adapter(DBAPIAdapter): def adapt_boolean(bval): return str(bval).upper() sqlite.register_adapter(bool, adapt_boolean) + + + # decimal type handling + from decimal import Decimal + def adapt_decimal(data): + return u"%s" % data + sqlite.register_adapter(Decimal,adapt_decimal) + + def convert_decimal(data): + return Decimal(data) + sqlite.register_converter('decimal',convert_decimal) # date/time types handling if HAS_MX_DATETIME: @@ -392,7 +403,9 @@ class _PySqlite2Adapter(DBAPIAdapter): if kwargs is None: self.__class__.__bases__[0].execute(self, sql) else: - self.__class__.__bases__[0].execute(self, self._replace_parameters(sql, kwargs), kwargs) + final_sql = self._replace_parameters(sql, kwargs) + self.__class__.__bases__[0].execute(self, final_sql , kwargs) + def executemany(self, sql, kwargss): if not isinstance(kwargss, (list, tuple)): kwargss = tuple(kwargss) |