2013-03-20 93 views
-1

它不允许我从我的数据库访问我的提示,出现错误。我的数据库SQL不允许我访问提示

代码:

def do_question(self): 
    self.func1() 
    #myGlobal + 1 
    if myGlobal >5: 
     import MathsvadersReal 

    SQL = 'SELECT * FROM tblQuestion' 
    cursor = Databaseconnector.SELECT(SQL) 
    rows = cursor.fetchall() 
    random_row = random.choice(rows) 

    print random_row.QuestionID, random_row.Question, random_row.Hint, random_row.A1, random_row.A2, random_row.A3, random_row.A4, random_row.CorrectAnswer 

    # create welcome label 
    self.label1 = Tkinter.Label(self, bg ='yellow', text = (random_row.Question)) 
    self.label1.grid(row = 0, column = 6, columnspan = 2, sticky = 'E') 

    self.label111 = Tkinter.Label(self, bg ='red', text = (random_row.QuestionID, ".")) 
    self.label111.grid(row = 0, column = 1, columnspan = 4, sticky = 'W') 

提示代码:

def homepage_link(self): 
    lbl = self.label111['text'] 
    SQL = 'SELECT Hint FROM tblQuestion WHERE QuestionID = ' + lbl + '' 
    print SQL 
    cursor = Databaseconnector.SELECT(SQL) 
    rows = cursor.fetchall() 
    #row = rows 
    tkMessageBox.showinfo("Hint", (row.Hint)) 

错误:

ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'QuestionID = 9 .'. (-3100) (SQLExecDirectW)") 

回答

0

self.label111['text']检索的值不是一个有效的整数,你应该删除"."在文末:

self.label111 = Tkinter.Label(self, bg ='red', text=random_row.QuestionID) 
# ... 
SQL = 'SELECT Hint FROM tblQuestion WHERE QuestionID = %s' % self.label111['text'] 
+0

我改变了这一切,并得到了新的错误:AttributeError的:“名单”对象有没有属性“提示” – 2013-03-20 21:05:29

+0

另一个错误:类型错误:行索引必须是整数,而不是str的 – 2013-03-20 21:12:13

+0

@SmithJr那么它应该是'行[ 0] [0]'。请注意,我无法记住Python模块的所有细节,因此如果您需要更多信息,我建议您提出一个新问题。 – 2013-03-20 21:43:22

相关问题