On Sep 27, 5:16 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> On Sep 27, 2008, at 3:12 PM, Sean Davis wrote:
>
>
>
>
>
> > I have been playing with new types using sqlalchemy and have an error
> > I do not understand. Table schema and type definition are here:
>
> > -----------------------------------------
>
> > def generate_uuid():
> > return uuid.uuid1()
>
> > class GUID(sa.types.TypeEngine):
> > def __init__(self):
> > pass
>
> > def get_col_spec(self):
> > return "varchar(40)"
>
> > def convert_bind_param(self, value, engine):
> > return str(value)
>
> > def convert_result_value(self, value, engine):
> > return uuid.UUID(value)
>
> > t_contacts = sa.Table('contacts',meta.metadata,
> > sa.Column('id',sa.types.Integer,primary_key=True),
> > sa.Column('uuid',GUID,default=generate_uuid),
> > sa.Column('firstname',sa.types.String(32),nullable=False),
> > sa.Column('lastname',sa.types.String(32),nullable=False),
> > sa.Column('email',sa.types.String(100),nullable=False),
> > sa.Column('phone',sa.types.String(32)))
>
> > ----------------------------------
>
> > In a Pylons web app, I get:
>
> > <class 'sqlalchemy.exc.ProgrammingError'>: (ProgrammingError) can't
> > adapt 'INSERT INTO contacts (id, uuid, firstname, lastname, email,
> > phone) VALUES (%(id)s, %(uuid)s, %(firstname)s, %(lastname)s, %
> > (email)s, %(phone)s)' {'uuid':
> > UUID('58d6bcb4-8cc6-11dd-983d-0016cb972e45'), 'firstname': u'Sean',
> > 'lastname': u'Davis', 'email': u'sdavis2 AT mail.nih.gov', 'phone':
> > u'301-435-2652', 'id': 3L}
>
> assuming str(UUID()) returns a string, seems like your
> convert_bind_param is not being called. This method was deprecated
> throughout 0.4 and is removed in 0.5, so if you're on 0.5 you should
> use the bind_processor() and result_processor() methods described
> athttp://www.sqlalchemy.org/docs/05/types.html
Thanks. I had upgraded to 0.5 a while back and just came back to this
project and didn't make the connection that the types system had
changed.
Sean
.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---