Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在函数之间调用SQLite游标对象?_Python_Sqlite - Fatal编程技术网

Python 如何在函数之间调用SQLite游标对象?

Python 如何在函数之间调用SQLite游标对象?,python,sqlite,Python,Sqlite,最近我对Python越来越熟悉了,正在编写一个简单的代码来访问SQLite数据库并通过SELECT查询显示数据。我一直在关注程序编程方面,因此数据库连接和数据检索被写入以下两个函数中 def AccessDB(): global BCDB,curVehicle,VehicleTB BCDB = sqlite3.connect('D:\CabDB.sqlite') curVehicle = BCDB.cursor() VehicleTB = BCDB.cursor

最近我对Python越来越熟悉了,正在编写一个简单的代码来访问SQLite数据库并通过SELECT查询显示数据。我一直在关注程序编程方面,因此数据库连接和数据检索被写入以下两个函数中

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语句。 我怀疑这意味着调用作用域时不接受全局变量可能是问题所在。
你知道这段代码有什么问题吗?

简单地定义函数之外的变量对我来说很有用:

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])

您确实需要在函数外部定义一个变量,以便在函数内部修改它。

AccessDB和getData是否与主程序在同一个模块中定义?