我有一个读取.mdb数据库并将其转换为csv文件的代码,由于我的数据库位于共享网络文件夹中,当代码读取数据库时,其他测试设备无法写入数据库。
我需要一种方式来读取这个.mdb为只读,这样每个人都可以打开它进行编辑,而这段代码正在阅读
import pyodbc
DRV = '{Microsoft Access Driver (*.mdb)}'
PWD = ''
mdb = 'C:\newfolder\database.mdb'
con = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRV, mdb, PWD)) # connect to db
cur = con.cursor()
sql = 'SELECT * FROM CK_Test_Results;' # run a query and get the results
rows = cur.execute(sql).fetchall()
cur.close()
con.close()
with open('Database.csv', 'w', newline='') as fou:
csv_writer = csv.writer(fou) # default field-delimiter is ","
csv_writer.writerows(rows)
2条答案
按热度按时间jpfvwuh41#
您可以通过附加
;ReadOnly=1
连接字符串。但是,在您阅读数据库时,其他用户当然可以更新数据库。检查.mdb文件所在文件夹的权限;数据库的所有用户都必须具有对文件夹的读/写访问权限,才能使并发多用户访问正常工作。详见此答案。
dkqlctbz2#
从控制面板/管理工具编辑odbc连接文件。选择odbc驱动程序,然后单击配置,然后单击选项。在显示窗口的底部,您应该看到独占和/或只读。