i cant reproduce that on this end.  created the tables, inserted a  
row into each, script returns fine (note its using a long value, i  
thought that might be an issue, but its not).  make sure youre on the  
latest MySQLDB driver.  also not sure if an older MySQL might be  
problematic as well here (though i doubt it, its a very basic example).


On Jul 13, 2007, at 9:53 AM, robertz23 wrote:

>
>      Hi,  I've been using SQLAlchemy since a month.  I'm having some
> problems with a one-to-many relationship.  I have 2 tables: one for
> users and one for users's emails.  The problem arises when I want to
> put a timestamp in the email table in order to see when a given
> account was created.  Here are the tables, my code, and the error:
>
> User Table:
> CREATE TABLE `user` (
>   `id` int(11) NOT NULL auto_increment,
>   `name` varchar(100) NOT NULL,
>   PRIMARY KEY  (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
>
> Email Table:
> CREATE TABLE `email` (
>   `id` int(11) NOT NULL auto_increment,
>   `email` varchar(100) default NULL,
>   `user_id` int(11) NOT NULL,
>   `last_modified` timestamp NOT NULL default CURRENT_TIMESTAMP on
> update CURRENT_TIMESTAMP,
>   PRIMARY KEY  (`id`),
>   KEY `fk_user_id` (`user_id`),
>   CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user`
> (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1
>
> ##########CODE############
>
> user_table = Table('user', metadata, autoload=True)
> email_table = Table('email', metadata, autoload=True)
> class User(object):
>     pass
> class Email(object):
>     pass
> session_context = SessionContext(create_session)
> assign_mapper(session_context, User, user_table,
> properties={'emails':relation(Email)})
> assign_mapper(session_context, Email, email_table)
>
> obj = User()
> obj.get(1).emails
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
> attributes.py", line 53, in __get__
>     return self.get(obj)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
> attributes.py", line 217, in get
>     values = callable_()
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/
> strategies.py", line 222, in lazyload
>     result = session.query(self.mapper,
> with_options=options).select_whereclause(self.lazywhere,
> order_by=order_by, params=params)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
> line 309, in select_whereclause
>     return self._select_statement(statement, params=params)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
> line 798, in _select_statement
>     return self.execute(statement, params=params, **kwargs)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/query.py",
> line 694, in execute
>     result = self.session.execute(self.mapper, clauseelement,
> params=params)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/orm/session.py",
> line 183, in execute
>     return self.connection(mapper,
> close_with_result=True).execute(clause, params, **kwargs)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 444, in execute
>     return Connection.executors[c](self, object, *multiparams,
> **params)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 484, in execute_clauseelement
>     return self.execute_compiled(elem.compile(engine=self.__engine,
> parameters=param), *multiparams, **params)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 503, in execute_compiled
>     proxy(str(compiled), parameters)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 499, in proxy
>     self._execute_raw(statement, parameters, cursor=cursor,
> context=context)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 547, in _execute_raw
>     self._execute(cursor, statement, parameters, context=context)
>   File "/usr/lib/python2.3/site-packages/sqlalchemy/engine/base.py",
> line 566, in _execute
>     raise exceptions.SQLError(statement, parameters, e)
> sqlalchemy.exceptions.SQLError: (ValueError) invalid literal for
> int(): 7- 'SELECT email.last_modified AS email_last_modified,
> email.user_id AS email_user_id, email.id AS email_id, email.email AS
> email_email \nFROM email \nWHERE %s = email.user_id ORDER BY
> email.id' [1L]
>
>      Sorry for putting too much data, but I'm a little desperate, I've
> been trying to do this for a whole week and I can't find useful
> information about this error.  I only found that this exception is
> when a query is not very well formed or something like that.  Please
> help me as soon as you can, thanks in advance for reading this post.
>
> regards,
> Roberto Zapata
>
>
> >


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