Query/fetch don't return result when it *theorically* should
Bernard Lebel
3dbernard at gmail.com
Wed Jan 18 17:48:58 EST 2006
More information about the Python-list mailing list
Wed Jan 18 17:48:58 EST 2006
- Previous message (by thread): MySQLdb - Query/fetch don't return result when it *theorically* should
- Next message (by thread): Threads sleeping all instead of just one.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Alan, On 1/18/06, Alan Franzoni <alan.franzoni.xyz at gmail.com> wrote: > Il Wed, 18 Jan 2006 14:39:09 -0500, Bernard Lebel ha scritto: > 1) It would be great if you didn't post four messages in less than an hour > ^_^ Yeah I know :-) But like I said, I've been stuck for 3 days on that, so, I need to get things off my chest. Sorry to anyone that got a smell of spam :-) > 2) Your code is very long! You can't expect many people to run and read it > all! You should post a very small demo program with the very same problem > as your main software. It'll help us a lot. Okay thanks for the advice. I have done what you have suggested. In this first example, I fetch an integer value from the database table. So far so good. However, if I change this value, the script keeps printing the same value over and over, eternally. Notic that everytime the while loop performs an iteration, a new cursor object is created, as you suggested. if __name__ == '__main__': oConnection = MySQLdb.connect( host = '192.168.10.101', user = 'render', passwd = 'rnrender', db = 'RenderFarm_BETA' ) sQuery = "SELECT LogLevel FROM TB_RENDERNODES WHERE ID = 108" while 1: oCursor = oConnection.cursor() oCursor.execute( sQuery ) oResult = oCursor.fetchone() print oResult oCursor.close() print 'waiting 5 seconds' time.sleep( 5 ) In the next one, I close the connection and create a new one. At that point, the script prints the right value when I change it in the database. if __name__ == '__main__': sQuery = "SELECT LogLevel FROM TB_RENDERNODES WHERE ID = 108" while 1: oConnection = MySQLdb.connect( host = '192.168.10.101', user = 'render', passwd = 'rnrender', db = 'RenderFarm_BETA' ) oCursor = oConnection.cursor() oCursor.execute( sQuery ) oResult = oCursor.fetchone() print oResult oCursor.close() oConnection.close() print 'waiting 5 seconds' time.sleep( 5 ) So I suspected that it had something to do with the threaded queue, but I can see it's not, since the examples above are not using it at all. Btw I did not expect anyone to run through the code, but just in case someone spotted something fishy... :-) > 3) IMHO your problem looks like something related to isolation levels. You > should check with your DB-adapter docs about the issue. You may need to > manually sync/commit the connection or the cursor. Instead of re-creating > the connection, have you tried just creating a new cursor object at every > query? > > If you want to do a quick-test, try any ORM, like sqlalchemy or sqlobject, > and check the results. Okay I'll check these out. Thanks Bernard
- Previous message (by thread): MySQLdb - Query/fetch don't return result when it *theorically* should
- Next message (by thread): Threads sleeping all instead of just one.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list