dont use the Unicode type if your MySQL client and/or server is converting unicode for you. "convert_unicode=False" has no effect on the Unicode type.
also note theres a bug in MySQLDB related to this: http://sourceforge.net/tracker/index.php?func=detail&aid=1592353&group_id=22307&atid=374932 http://www.sqlalchemy.org/trac/ticket/340 On Feb 1, 7:28 am, "Andrew Stromnov" <[EMAIL PROTECTED]> wrote: > Python 2.4.4 (win32) + SQLAlchemy (r2285) + MySQLdb 1.2.1 > > Code: > > from sqlalchemy import create_engine, BoundMetaData > from sqlalchemy import Table, Column, Integer, String, SmallInteger, > Unicode > > dburl1 = 'mysql://login:[EMAIL PROTECTED]/geobase? > use_unicode=1&charset=cp1251&compress=1' > engine1 = create_engine(dburl1, echo=False) > metadata1 = BoundMetaData(engine1) > cities = Table('cities', metadata1, > Column('id', Integer, autoincrement=True, primary_key=True), > Column('region_id', Integer, nullable=False, default=0), > Column('country_id', Integer, nullable=False, default=0), > Column('dialcode', String(7), nullable=False, default=''), > Column('name', String(64), nullable=False, default=''), > Column('mask', String(5), nullable=False, default=''), > Column('metro', SmallInteger, nullable=False, default='0') ) > > dburl2 = 'mysql://login:[EMAIL PROTECTED]/geobase? > use_unicode=1&charset=utf8' > engine2 = create_engine(dburl2, echo=False, convert_unicode=False) > metadata2 = BoundMetaData(engine2) > > places = Table('places', metadata2, > Column('id', Integer, autoincrement=True, primary_key=True), > Column('name', Unicode(64), nullable=False, default=''), > Column('parent', Integer, nullable=False, default=0), > Column('left', Integer, nullable=False, default=0), > Column('right', Integer, nullable=False, default=0), > Column('depth', Integer, nullable=False, default=0), > Column('type', Integer, nullable=False, default=0), > Column('dialcode', Unicode(7), nullable=True), > Column('mask', Unicode(5), nullable=True), > Column('code', Integer, nullable=True), > Column('domain', Unicode(5), nullable=True), > ) > > # BLOCK > cities = cities.select(limit=1).execute().fetchall() > # BLOCK > > iv2 = u'\u0418\u0432\u0430\u043d\u043e\u0432\u0441\u043a\u0430\u044f > \u043e\u0431\u043b.' > nregion = places.select(places.c.name == iv2).execute() > > ---- > > Traceback (most recent call last): > File "e.py", line 37, in ? > nregion = places.select(places.c.name == iv2).execute() > File "\Python24\Lib\site-packages\sqlalchemy\sql.py", line 476, in > execute > File "\Python24\Lib\site-packages\sqlalchemy\sql.py", line 414, in > execute > File "C:\Python24\lib\site-packages\sqlalchemy\engine\base.py", line > 492, in execute_compiled > return connection.execute_compiled(compiled, *multiparams, > **params) > File "C:\Python24\lib\site-packages\sqlalchemy\engine\base.py", line > 303, in execute_compiled > proxy(str(compiled), parameters) > File "C:\Python24\lib\site-packages\sqlalchemy\engine\base.py", line > 299, in proxy > self._execute_raw(statement, parameters, cursor=cursor, > context=context) > File "C:\Python24\lib\site-packages\sqlalchemy\engine\base.py", line > 337, in _execute_raw > self._execute(cursor, statement, parameters, context=context) > File "C:\Python24\lib\site-packages\sqlalchemy\engine\base.py", line > 356, in _execute > raise exceptions.SQLError(statement, parameters, e) > sqlalchemy.exceptions.SQLError: (UnicodeDecodeError) 'charmap' codec > can't decode byte 0x98 in position 1: character maps to <undefined> > 'SELECT places.id, places.name, places.parent, places.`left`, > places.`right`, places.depth, places.type, places.dialcode, > places.mask, places.code, places.domain \nFROM places \nWHERE > places.name = %s' ['\xd0\x98\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xbe > \xd0\xb2\xd1\x81\xd0\xba\xd0\xb0\xd1\x8f \xd0\xbe\xd0\xb1\xd0\xbb.'] --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---