Fixed #69 -- Implemented dictfetchone(), dictfetchmany() and dictfetchall() for mysql DB backend. Thanks, Manuzhai!
git-svn-id: http://code.djangoproject.com/svn/django/trunk@190 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
00f54d6cf6
commit
8f4fa5a4e7
|
@ -46,17 +46,26 @@ class DatabaseWrapper:
|
||||||
self.connection.close()
|
self.connection.close()
|
||||||
self.connection = None
|
self.connection = None
|
||||||
|
|
||||||
|
def _dict_helper(desc, row):
|
||||||
|
"Returns a dictionary for the given cursor.description and result row."
|
||||||
|
return dict([(desc[col[0]][0], col[1]) for col in enumerate(row)])
|
||||||
|
|
||||||
def dictfetchone(cursor):
|
def dictfetchone(cursor):
|
||||||
"Returns a row from the cursor as a dict"
|
"Returns a row from the cursor as a dict"
|
||||||
raise NotImplementedError
|
row = cursor.fetchone()
|
||||||
|
if not row:
|
||||||
|
return None
|
||||||
|
return _dict_helper(cursor.description, row)
|
||||||
|
|
||||||
def dictfetchmany(cursor, number):
|
def dictfetchmany(cursor, number):
|
||||||
"Returns a certain number of rows from a cursor as a dict"
|
"Returns a certain number of rows from a cursor as a dict"
|
||||||
raise NotImplementedError
|
desc = cursor.description
|
||||||
|
return [_dict_helper(desc, row) for row in cursor.fetchmany(number)]
|
||||||
|
|
||||||
def dictfetchall(cursor):
|
def dictfetchall(cursor):
|
||||||
"Returns all rows from a cursor as a dict"
|
"Returns all rows from a cursor as a dict"
|
||||||
raise NotImplementedError
|
desc = cursor.description
|
||||||
|
return [_dict_helper(desc, row) for row in cursor.fetchall()]
|
||||||
|
|
||||||
def get_last_insert_id(cursor, table_name, pk_name):
|
def get_last_insert_id(cursor, table_name, pk_name):
|
||||||
cursor.execute("SELECT LAST_INSERT_ID()")
|
cursor.execute("SELECT LAST_INSERT_ID()")
|
||||||
|
|
Loading…
Reference in New Issue