2017-12-02 166 views
-3

我认为我有正确的想法来解决这个功能,但我不确定为什么当我测试它时会出现这个错误。任何人都可以帮我解决这个问题吗?返回一个包含位置的数据库

错误:CONN = sqlite3.connect(分贝) sqlite3.OperationalError:无法打开数据库文件

所需的输出:

>>> get_locations(db, 'ANTA01H3F') 

[( 'ANTA01H3F', 'LEC01',“AA112 '),(' ANTA01H3F”, 'LEC01', 'SY110'),( 'ANTA01H3F', 'LEC02', 'AC223')]

def get_locations(db, course): 
'''Return the course, section and locations of the exam for the given course.''' 
return run_query('''SELECT Courses.Course, Courses.Sections, Room.Locations 
FROM Courses JOIN Locations ON Courses.ID = Locations.ID WHERE Course = ?''', [course]) 

回答

0

这是太多的抽象。 ;)

请参阅run_query()从中获取db(sqlite数据库文件名)的值以运行查询。它没有得到你期待的正确的文件名。

您呼叫的功能失常,它接受db和sql语句字符串:

return run_query(db, "SELECT Courses.Course, Courses.Sections, Locations.Room " \ 
" FROM Courses JOIN Locations ON Courses.ID = Locations.ID WHERE Course = '{}'".format(course)) 
+0

我run_query功能工作正常,我打电话,但我不知道为什么它不工作。 – dg123

+0

高清run_query(DB,Q,ARGS =无): “” “(STR,STR,元组) - >元组的列表 返回运行查询q的结果与 数据库DB参数ARGS。” “” conn.cursor() cur = conn.cursor() #执行查询时给定的参数传递 #如果参数是无,我们只有一个查询 如果args是None: cur.execute(q ) 否则: cur.execute(q,参数) 结果= cur.fetchall() cur.close() conn.close() 返回结果 – dg123

+0

然后你通过错误的论点。让我纠正它。 – KiranM

相关问题