I am new to Python and can’t seem to figure out why the .getRow method doesn’t run. I created a DBMain class in dbMain.py and I am using pyTest.py to create the DBMain object to run getRow. When I run the debugger in Eclipse and DBMain’s constructor does run but but when the getRow method is call nothing happens.
pyTest.py
import dbMain
def main():
db = dbMain.DbMain()
db.getRow()
if __name__ == '__main__':
main()
dbMain.py
#@PydevCodeAnalysisIgnore
import pyodbc
class DbMain(object):
cncx = ''
def __init__(self):
cnxn = pyodbc.connect(driver='{SQL Server}',
server='server',
database='database',
uid='name',
pwd='pwd')
def getRow():
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
row = cursor.fetchone()
return row
You do not return anything from
getRow. Maybe you want to include something likeYour
getRow()method is not bound to the class. The signature for an instance method should look something likegetRow(self)– the first parameter is the instance, which is received explicitly (but passed implicitly, when you callsomeinstance.method()).To have something functional, you maybe should alter your dbMain to something like this:
Further reading: