用于查询access数据库(.mdb)文件的只读方法?

inb24sb2  于 2021-07-27  发布在  Java
关注(0)|答案(2)|浏览(617)

我有一个读取.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)
jpfvwuh4

jpfvwuh41#

您可以通过附加 ;ReadOnly=1 连接字符串。但是,在您阅读数据库时,其他用户当然可以更新数据库。
检查.mdb文件所在文件夹的权限;数据库的所有用户都必须具有对文件夹的读/写访问权限,才能使并发多用户访问正常工作。详见此答案。

dkqlctbz

dkqlctbz2#

从控制面板/管理工具编辑odbc连接文件。选择odbc驱动程序,然后单击配置,然后单击选项。在显示窗口的底部,您应该看到独占和/或只读。

相关问题