Hi Mr. Bayer, On Aug 29, 10:10 am, Michael Bayer <[EMAIL PROTECTED]> wrote: > On Aug 29, 2008, at 10:53 AM, Mike wrote: > > > > > If I use pymssql instead, it works. As I understand it, SA should be > > using pymssql anyway, so I don't know why this is happening. I can > > cast the unicode to a string, so it's not a big deal. However, I > > thought someone might want to know that this is happening. > > without a sample of the code and schema in use, we can't say for sure > what the issue is. Are you making usage of the Unicode type at least ? > >
Since I am autoloading, I didn't know I could use the Unicode type to override what was reflected. How do I do that? There's only so much I can give being that I'm talking about accounting data, but here's a sample that should work: <code> from sqlalchemy import create_engine, Column, Float, Integer from sqlalchemy import MetaData, String, Table, Unicode from sqlalchemy.orm import mapper, sessionmaker class Acct_Prefs(object): ''' Table object for tbl_Acct_Prefs ''' def __init__(self, empID, pref_name, pref_value): self.empID = empID self.pref_name = pref_name self.pref_value = pref_value def __repr__(self): return "<Acct_Prefs ('%s', '%s', '%s')>" % (self.empID, self.pref_name, self.pref_value) class TimeEntries(object): ''' Table object for tbl_TimeEntries ''' def __init__(self, dateworked, empid, reg, ot, ce, hol, sklv, vac, ct, conv, misc, comments): self.dateworked = dateworked self.empid = empid self.reg = reg self.ot = ot self.ce = ce self.hol = hol self.sklv = sklv self.vac = vac self.ct = ct self.conv = conv self.misc = misc self.comments = comments def __repr__(self): return "<TimeEntries ('%s', '%s')>" % (self.dateworked, self.empid) # Connect to the database print 'connecting to MCISAccounting DB...' engine = create_engine('sqlite:///sample.db') metadata = MetaData(engine) # Load the tables print 'loading tables...' prefs_table = Table('tbl_Acct_Prefs', metadata, Column('empID', String(5), primary_key=True), Column('pref_name', String(50), primary_key=True, nullable=False), Column('pref_value', String(50), nullable=False) ) entry_table = Table('tbl_TimeEntries', metadata, Column('dateworked', String(10), primary_key=True), Column('empid', Integer, primary_key=True, autoincrement=False), Column('reg', Float), Column('ot', Float), Column('ce', Float), Column('hol', Float), Column('sklv', Float), Column('vac', Float), Column('ct', Float), Column('conv', Float), Column('misc', Float), Column('comments', Unicode(256)) ) metadata.create_all() # Map the tables print 'mapping tables...' mapper(TimeEntries, entry_table) mapper(Acct_Prefs, prefs_table) # Create a session object print 'creating session...' Session = sessionmaker(bind=engine) session = Session() prefOne = Acct_Prefs(258, 'last_payPeriod', 2) session.Add(prefOne) session.commit() </code> That should get it to look as similar as possible to the state the SQL Server is in. Now here's where I get the issue. I do the following query pref = self.session.query(Acct_Prefs).filter_by(empID=258, pref_name='last_payPeriod').first() and then I do the following where someValue happens to be a unicode string: pref.pref_value = someValue session.commit() > > > Oh, and I use autoload to load my Table() objects. I'm not sure if > > that's significant or not though. I am also using a session.commit() > > to get the error above. > > You might want to enable convert_unicode=True on your Engine, or > override the specific columns requiring unicode compatibility with the > Unicode type. String columns are reflected by default without unicode > awareness. This might work. I'll give it a whirl anyway. I hope my code sample makes sense and isn't too ugly. I'm still pretty green with your cool ORM and SQL in general. Mike --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---