
On 6/25/07, Karl Bartel <karlb@gmx.net> wrote:
Brendon Colby wrote:
4. I was digging through the adbapi code, and it appears that the only type of result set I can get is a tuple (because only cursors are used...). Is there a way I can get a dictionary returned, keys are column names? i.e. a MySqlDB.fetch_row(how=1). I'm just not seeing how I can do this with adbapi or, rather, how I can pass through to the MySqlDB module to get this type of result set.
This depends on your DBAPI implementation. psycopg2 and pysqlite have optional support for this. I don't know about you mysql, though. Using any of these is not DBAPI2 compliant, but it's extremely useful.
Aha! This got me thinking...so I dug into the MySQLdb README file (again). To be able to get a tuple of dictionaries returned while using adbabi/MySQLdb, you simply have to do: self.dbPool = adbapi.ConnectionPool("MySQLdb",host=host,port=port, user=username,passwd=password, db=database, cursorclass=DictCursor) #<----- Since MySQLdb implements cursors in Python, one can subclass the base cursor class or use one of the several others provided - in this case DictCursor. This just wasn't obvious to me (never was) in the README! Brendon