En Tue, 06 Nov 2007 18:57:12 -0300, barronmo <[EMAIL PROTECTED]> escribió:
> I'm getting an error msg I don't understand, "global name EMR_globals > is not defined", and could use some help. > > I've separated the application I'm building into several modules. One > of the modules holds variables I need to pass from one module to > another and is called 'EMR_globals'. Several other modules hold > functions or user menus and then 'EMR_main' controls the initial user > interaction. I'm using MySQL to hold the data. Global variables usually are not a good design decision, but that's not your current problem. > The initial connection to the database is done by 'EMR_main'. > Functions then define and close a cursor for various queries. The > connection variable, 'conn', is defined 'conn = "" ' in EMR_globals > and then used in EMR_main. Unfortunately when a module.function > attempts to use it I get the error msg. In Python, "global" means "global to the module". If conn is defined in EMR_globals, when you want to use it elsewhere, you can: a) from EMR_globals import conn ... cursor = conn.cursor(...) b) import EMR_globals ... cursor = EMR_globals.conn.cursor(...) Usually those import statements are placed at the top of the module. > cursor.execute("SELECT * FROM demographics WHERE patient_ID = %s" > % (a,)) > selected_pt = cursor.fetchall() > # if this query returns more than one record the following code will > fail I think > print menus.menu_demographics(selected_pt['firstname'], > selected_pt['lastname'], ... I think it will fail even with one record, because fetchall() returns a list of rows. Try using fetchone(). Anyway, if patient_ID is the primary key, you should always get a single row. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list