It's not happening everytime.

And I am not using mysql-python, instead, I use pymysql.

So, the root cause is connection in bad state?
How to fix or work around from sqlalchemy side?

Wesley

在 2014年3月27日星期四UTC+8下午8时58分40秒,Michael Bayer写道:
>
> when the DBAPI cursor has no .description object, it is determined to not 
> be a result-row returning object.   The MySQLDB DBAPI has been observed to 
> occasionally have issues in this area, when a connection gets into a bad 
> state. There are likely patterns in how you’re calling it that lead it to 
> have this issue but you might try a different DBAPI like 
> mysql-connector-python just to see what’s different.
>
>
>
>
> On Mar 27, 2014, at 7:41 AM, Ni Wesley <nis...@gmail.com <javascript:>> 
> wrote:
>
> Hi all,
>   Today I get an error as title.
> I use sqlalchemy + mysql.
> Here is my code snippet:
>
> def dbquery(_table,whereclause):
>
>     try:
>
>         #_table=Table(tablename, metadata, autoload=True)
>
>         #_table = tables[tablename]
>
>         i=_table.select().where(whereclause) 
>
>         if direct_engine:  #direct_engine is True
>
>             res = engine.execute(i)
>
>             return res
>
>         else:
>
>             session = scoped_session(sessionmaker(bind=engine))
>
>             res = session.execute(i)
>
>             return res
>
>             session.close()
>
>     except Exception,e:
>
>         #dba_logger.log(40,'Exception when dbwriter:%s' % str(e))
>
>         #dba_logger.log(20,'Exception detail:%s' % str(kwargs))
>
>         exctrace('db','1','Error happened when querying 
> db',dba_logger,'Exception when dbquery:%s' % str(e),'Exception detail:%s' % 
> str(whereclause))
>
>         #session.rollback()
>
>         if not direct_engine:
>
>             session.close()
>
> Here is snippet in another file involving dbquery:
>
> try:
>
>      res = dbquery(tables[*'sessions_details'*],whereclause=and_(tables[
> *'sessions_details'*].c.app_key==*self*.app_key,tables[
> *'sessions_details'*].c.device_token==*self*._devicetoken))
>
> except Exception,e:
>
>     exctrace(*'db'*,*'1'*,*'Error happened when querying 
> db'*,dba_logger,*'Exception 
> when query session_details:%s'* % str(e),*'Exception detail:appkey is 
> %s,devicetoken is %s'* % (*self*.app_key,*self*._devicetoken))
>
>     *self*.read_message()
>
>     return   
>
> if res is None:
>
>    logger.log(40,*'When query connection,mysql has gone or something, 
> just skip db and go-on'*)
>
>                         #here need to justify 0 or 1, later on 
>
>                         *self*.status=*'0'*
>
>                         *self*.read_message()
>
>                         return
>
> if res.first() is None:
>
>    if json_obj[*'action'*] == *'reg'*:
>
> So, the line in pink above raises the exception.
>
> Could anyone give some suggestion how this happened?
>
>
> Thanks.
>
> Wesley
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+...@googlegroups.com <javascript:>.
> To post to this group, send email to sqlal...@googlegroups.com<javascript:>
> .
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to