Declare self.cursor

John Nagle nagle at animats.com
Wed Aug 25 15:54:00 EDT 2010


On 8/24/2010 10:15 AM, Dani Valverde wrote:
> Hello!
> I am working on a GUI to connect to a MySQL database using MySQLdb (code
> in attached file). I define the cursor in lines 55-66 in the OnLogin
> function within the LoginDlg class.
>
> /db= MySQLdb.connect(host='localhost', user=Username , passwd=pwd,
> db='Ornithobase')
> self.cursor = db.cursor()/
>
> When I try to use the cursor on another part of the code (EditUser
> class, line 176)
>
> /sql = 'select substring_index(CURRENT_USER(),"@",1)'
> login.cursor.execute(sql)/
>
> I get this error:
>
> /AttributeError: 'LoginDlg' object has no attribute 'cursor'/
>
> You can check the code for details, I think is better.
> Cheers!
>
> Dani
>


self.cursor = db.cursor()
...
self.Destroy()	# probably clears the object


Also, it's generally better to hold on to the database handle and
get a cursor from it as a local variable when needed.  You
need the database handle for "db.commit()", at least.  Getting
a cursor is fast.  (Actually, in MySQL, there is only one cursor.)


I realize it's a desktop application, but still:

db= MySQLdb.connect(host='localhost', user='root' , passwd='acrsci00', 
db='Ornithobase')



More information about the Python-list mailing list