4444
4545
4646class BaseCursor (object ):
47-
4847 """A base for Cursor classes. Useful attributes:
4948
5049 description
@@ -59,7 +58,6 @@ class BaseCursor(object):
5958
6059 arraysize
6160 default number of rows fetchmany() will fetch
62-
6361 """
6462
6563 from _mysql_exceptions import MySQLError , Warning , Error , InterfaceError , \
@@ -85,17 +83,15 @@ def __init__(self, connection):
8583 self ._info = None
8684 self .rownumber = None
8785
88- def __del__ (self ):
89- self .close ()
90- self .errorhandler = None
91- self ._result = None
92-
9386 def close (self ):
9487 """Close the cursor. No further queries will be possible."""
9588 if self .connection is None or self .connection () is None :
9689 return
97- while self .nextset (): pass
90+ while self .nextset ():
91+ pass
9892 self .connection = None
93+ self .errorhandler = None
94+ self ._result = None
9995
10096 def _check_executed (self ):
10197 if not self ._executed :
@@ -124,7 +120,7 @@ def nextset(self):
124120 if self ._executed :
125121 self .fetchall ()
126122 del self .messages [:]
127-
123+
128124 db = self ._get_db ()
129125 nr = db .next_result ()
130126 if nr == - 1 :
@@ -135,7 +131,7 @@ def nextset(self):
135131 return 1
136132
137133 def _post_get_result (self ): pass
138-
134+
139135 def _do_get_result (self ):
140136 db = self ._get_db ()
141137 self ._result = self ._get_result ()
@@ -162,7 +158,6 @@ def _get_db(self):
162158 return con
163159
164160 def execute (self , query , args = None ):
165-
166161 """Execute a query.
167162
168163 query -- string, query to execute on server
@@ -173,9 +168,9 @@ def execute(self, query, args=None):
173168 %(key)s must be used as the placeholder.
174169
175170 Returns long integer rows affected, if any
176-
177171 """
178- del self .messages [:]
172+ while self .nextset ():
173+ pass
179174 db = self ._get_db ()
180175
181176 # NOTE:
@@ -206,23 +201,19 @@ def execute(self, query, args=None):
206201 except TypeError as m :
207202 if m .args [0 ] in ("not enough arguments for format string" ,
208203 "not all arguments converted" ):
209- self .messages .append ((ProgrammingError , m .args [0 ]))
210204 self .errorhandler (self , ProgrammingError , m .args [0 ])
211205 else :
212- self .messages .append ((TypeError , m ))
213206 self .errorhandler (self , TypeError , m )
214207 except (SystemExit , KeyboardInterrupt ):
215208 raise
216209 except :
217210 exc , value = sys .exc_info ()[:2 ]
218- self .messages .append ((exc , value ))
219211 self .errorhandler (self , exc , value )
220212 self ._executed = query
221213 if not self ._defer_warnings : self ._warning_check ()
222214 return r
223215
224216 def executemany (self , query , args ):
225-
226217 """Execute a multi-row query.
227218
228219 query -- string, query to execute on server
@@ -237,7 +228,6 @@ def executemany(self, query, args):
237228 This method improves performance on multiple-row INSERT and
238229 REPLACE. Otherwise it is equivalent to looping over args with
239230 execute().
240-
241231 """
242232 del self .messages [:]
243233 db = self ._get_db ()
0 commit comments