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 <nisp...@gmail.com> 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+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. -- 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.