---------- Forwarded message ----------
From: Mitch <mchapm...@gmail.com>
Date: Dec 5, 2007 1:06 AM
Subject: [elixir] sqlite3.OperationalError: Could not decode to UTF-8 column
To: SQLElixir <sqle...@googlegroups.com>
Apologies in advance if this should be sent to the SQLAlchemy list
instead...
I have an SQLite3 database created with SQLElixir. One of the table
columns, of type String, is being populated from a file which contains
ISO-8859 data. When I try to query all records from the table I get a
traceback which ends with:
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
python2.5/site-packages/SQLAlchemy-0.4.1-py2.5.egg/sqlalchemy/engine/
base.py", line 1497, in fetchall
l = [self._process_row(self, row) for row in
self._fetchall_impl()]
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
python2.5/site-packages/SQLAlchemy-0.4.1-py2.5.egg/sqlalchemy/engine/
base.py", line 1492, in _fetchall_impl
return self.cursor.fetchall()
sqlite3.OperationalError: Could not decode to UTF-8 column '[...]'
with text [...]
If I were using the sqlite3 module directly, an acceptable workaround
would be to override the default text factory for the database
connection, e.g. "conn.text_factory = str". Is there any way to do
this via the elixir or sqlalchemy APIs? Is there a better solution?
Thanks for the help.
--
Gaëtan de Menten
http://openhex.org
if he wants to sqlite's "text_factory" feature, he can use a custom
connection function described in http://www.sqlalchemy.org/docs/04/dbengine.html#dbengine_establishing_custom
.