Arun wrote:
> So in short if I specify use_unicode=True at the SA engine level
> then I can skip specifying use_unicode and specify only
> charset=utf8 at mysqldb level ?

If you configure this DB-API driver for all-Unicode (which is what 
happens when you only give it a 'charset') all strings will come 
back from the database to SQLAlchemy as Unicode.  You can ask the 
Engine and/or types to convert_unicode=True, but it won't do 
anything except add processing overhead- the strings are already 
Unicode from the driver.

Try playing with the following to find a combination that suits 
your needs.  The first two engine configurations aren't options for 
you obviously, but they make a good demo.

from sqlalchemy import *
e = create_engine('mysql:///test')
#e = create_engine('mysql:///test', convert_unicode=True)
#e = create_engine('mysql:///test?charset=utf8')
#e = create_engine('mysql:///test?charset=utf8',
#                  convert_unicode=True)
#e = create_engine('mysql:///test?charset=utf8&use_unicode=0')
#e = create_engine('mysql:///test?charset=utf8&use_unicode=0',
#                  convert_unicode=True)

m = MetaData(e)
t = Table('unicodings', m,
          Column('string', String(32)),
          Column('unicode', Unicode(32)))

if not t.exists():
    t.create()
    t.insert().execute({'string':'foo',
                        'unicode':'bar'})

print repr(list(t.select().execute()))


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to