Daniel Winkler
mailings at danielwinkler.de
Wed Sep 21 05:47:32 EDT 2005
Hi Jorey, Am Dienstag, den 20.09.2005, 19:24 -0400 schrieb Jorey Bump: > ... and possibly some of the errors you're seeing, as well, for context? > Are you sure the arguments referred to are in fact the ones in the > query, and not from some other part of the code? Okay, I'll try to extract the important parts ... index.py: *********************************** from mod_python import psp import dirigent import chor [...] def startseite(req, chorid=0): #called startseite?chorid=1 or so dirigent.id = dirigent.ermittle_dirigent(req) chor.id = chor.ermittle_chor(chorid, dirigent.id) [...] datenbank.py: ******************************** import MySQLdb db = MySQLdb.connect(host="localhost", user="chordb", passwd="somethingsecret", db="chordatenbank") chor.py: ************************************* from datenbank import db [...] id = 0 def _acltest_ok(chorID, dirigentID): acl = db.cursor() (*) acl.execute("SELECT chor FROM acl WHERE chor = %s AND dirigent = %s", (chorID, dirigentID)) return (int(acl.rowcount) > 0) def ermittle_chor(chorID, dirigentID): if ( (chorID > 0) and _acltest_ok(chorID, dirigentID) ): return chorID else: choere = db.cursor() (*) choere.execute("SELECT chor FROM acl WHERE dirigent = %s;", (dirigentID)) if int(choere.rowcount) == 1: chor = choere.fetchone() return chor[0] else: return 0 The (*) marked lines are those where the error occurs most at the moment. E.g.: ****************************************** od_python error: "PythonHandler mod_python.publisher" Traceback (most recent call last): File "/usr/lib/python2.3/site-packages/mod_python/apache.py", line 299, in HandlerDispatch result = object(req) File "/usr/lib/python2.3/site-packages/mod_python/publisher.py", line 136, in handler result = util.apply_fs_data(object, req.form, req=req) File "/usr/lib/python2.3/site-packages/mod_python/util.py", line 361, in apply_fs_data return object(**args) File "<somewhere>/index.py", line 49, in lied chor.id = chor.ermittle_chor(chorid, dirigent.id) File "<somewhere>/chor.py", line 18, in ermittle_chor if ( (chorID > 0) File "<somewhere>/chor.py", line 11, in _acltest_ok acl.execute("SELECT chor FROM acl WHERE chor = %s AND dirigent = %s", (chorID, dirigentID)) File "/usr/lib/python2.3/site-packages/MySQLdb/cursors.py", line 132, in execute self.errorhandler(self, TypeError, m) File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line 33, in defaulterrorhandler raise errorclass, errorvalue TypeError: argument 2 must be a mapping ********************************* The first time I load the page, everything is fine. This error occurs after the first or second page reload (same code, same parameters). Don't ask me why ... I had even more strange errors like "syntax errors" in a line called "c = 1" in a PSP file, but I cannot reproduce them at the moment. (maybe after the problem above is fixed :-) BTW, I am new to Python so if you have additional hints what can be done better: everything is welcome. Okay, yes, I know that global variables aren't very nice, but I thought it is not necessary to build a class just for one object ... ;-) TIA Daniel
|