我现在熟悉Python,并编写了一个简单的代码来访问SQLite数据库并通过SELECT查询显示数据。我一直专注于程序编程方面,因此数据库连接和数据检索被写入2个函数,如下所示。
def AccessDB():
global BCDB,curVehicle,VehicleTB
BCDB = sqlite3.connect('D:\CabDB.sqlite')
curVehicle = BCDB.cursor()
VehicleTB = BCDB.cursor()
def getData():
curVehicle.execute('SELECT * FROM Vehicle')
Result=curVehicle.fetchall()
print(Result[0])
List1.insert(0,Result[0][0])
然后是主程序:
AccessDB()
getData()
执行时,我收到以下错误:
line 57, in getData
curVehicle.execute('SELECT * FROM Vehicle')
NameError: name 'curVehicle' is not defined
第57行引用.execute语句。 我怀疑这意味着调用范围不接受全局变量可能是问题。 这个代码有什么问题吗?
答案 0 :(得分:0)
简单地定义函数之外的变量对我有用:
BCDB,curVehicle,VehicleTB = (0,0,0)
def AccessDB():
BCDB = sqlite3.connect('D:\CabDB.sqlite')
curVehicle = BCDB.cursor()
VehicleTB = BCDB.cursor()
def getData():
curVehicle.execute('SELECT * FROM Vehicle')
Result=curVehicle.fetchall()
print(Result[0])
List1.insert(0,Result[0][0])
你需要在函数之外定义一个变量,然后你可以在函数内修改它。