mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Refactor dictfetch* methods from mysql backend out into a seperate module; this is so that future db backends that need these functions can share them.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@276 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -5,6 +5,7 @@ Requires MySQLdb: http://sourceforge.net/projects/mysql-python | ||||
| """ | ||||
|  | ||||
| from django.core.db import base, typecasts | ||||
| from django.core.db.dicthelpers import * | ||||
| import MySQLdb as Database | ||||
| from MySQLdb.converters import conversions | ||||
| from MySQLdb.constants import FIELD_TYPE | ||||
| @@ -46,27 +47,6 @@ class DatabaseWrapper: | ||||
|             self.connection.close() | ||||
|             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): | ||||
|     "Returns a row from the cursor as a dict" | ||||
|     row = cursor.fetchone() | ||||
|     if not row: | ||||
|         return None | ||||
|     return _dict_helper(cursor.description, row) | ||||
|  | ||||
| def dictfetchmany(cursor, number): | ||||
|     "Returns a certain number of rows from a cursor as a dict" | ||||
|     desc = cursor.description | ||||
|     return [_dict_helper(desc, row) for row in cursor.fetchmany(number)] | ||||
|  | ||||
| def dictfetchall(cursor): | ||||
|     "Returns all rows from a cursor as a dict" | ||||
|     desc = cursor.description | ||||
|     return [_dict_helper(desc, row) for row in cursor.fetchall()] | ||||
|  | ||||
| def get_last_insert_id(cursor, table_name, pk_name): | ||||
|     cursor.execute("SELECT LAST_INSERT_ID()") | ||||
|     return cursor.fetchone()[0] | ||||
|   | ||||
							
								
								
									
										24
									
								
								django/core/db/dicthelpers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								django/core/db/dicthelpers.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| """ | ||||
| Helper functions for dictfetch* for databases that don't natively support them. | ||||
| """ | ||||
|  | ||||
| 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): | ||||
|     "Returns a row from the cursor as a dict" | ||||
|     row = cursor.fetchone() | ||||
|     if not row: | ||||
|         return None | ||||
|     return _dict_helper(cursor.description, row) | ||||
|  | ||||
| def dictfetchmany(cursor, number): | ||||
|     "Returns a certain number of rows from a cursor as a dict" | ||||
|     desc = cursor.description | ||||
|     return [_dict_helper(desc, row) for row in cursor.fetchmany(number)] | ||||
|  | ||||
| def dictfetchall(cursor): | ||||
|     "Returns all rows from a cursor as a dict" | ||||
|     desc = cursor.description | ||||
|     return [_dict_helper(desc, row) for row in cursor.fetchall()] | ||||
		Reference in New Issue
	
	Block a user