python 读写mdb

发布时间 2023-04-29 17:01:46作者: myrj
Python中可以使用pyodbc模块连接Microsoft Access数据库(.mdb格式)。
首先需要先安装pyodbc模块和Microsoft Access驱动程序,可以使用pip安装pyodbc:
```
pip install pyodbc
```
然后需要下载安装Microsoft Access驱动程序,下载链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
安装完成后,就可以使用以下代码连接和读写mdb数据库:
```
import pyodbc
# 连接数据库
conn_str = (
    r"DRIVER={Microsoft Access Driver (*.mdb)};"
    r"DBQ=C:\path\to\your\database.mdb;"
)
conn = pyodbc.connect(conn_str)
# 读取数据
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
rows = cursor.fetchall()
for row in rows:
    print(row)
# 插入数据
cursor.execute("INSERT INTO your_table (column1, column2) VALUES (?, ?)", 
               ("value1", "value2"))
conn.commit()

# 关闭连接
conn.close()
```
以上代码中,`conn_str`是连接字符串,需要根据自己的数据库文件路径和驱动程序名称进行修改。`cursor`是游标对象,用于执行SQL语句和获取查询结果。`execute()`方法用于执行SQL语句,第一个参数是SQL语句字符串,如果有占位符,可以在第二个参数中传入占位符对应的值。`fetchall()`方法用于获取查询结果中所有行数据。

需要注意的是,读取和写入数据的操作都需要使用`commit()`方法提交事务,否则修改将不会生效。在操作结束后,需要调用`close()`方法关闭数据库连接。

Python pyodbc模块可以使用连接字符串(Connection String)来连接带密码的Microsoft Access数据库(.mdb格式)。

以下是可以连接带密码的Access数据库的连接字符串示例:

```
conn_str = (
    r"DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};"
    r"DBQ=C:\path\to\your\database.mdb;"
    r"PWD=your_password;"
)
conn = pyodbc.connect(conn_str)
```

连接字符串中,加上数据库密码(PWD)的语法是,在连接字符串的最后加上";PWD=your_password;",其中的"your_password"是你的数据库密码。注意,连接字符串中的花括号({})是必需的,用于将大括号之间的字符串解释为一个通用数据命名空间(Guid Namespace),以避免连接字符串语法错误。

在连接字符串中,也可以加上其他可选的参数,如:

- UID:用于指定用户名;
- Exclusive:用于指定是否独占访问该数据库;
- Jet OLEDB:用于指定一些高级选项,如文件锁定等。

例如,以下是一个连接字符串示例,包括了所有可选参数:

```
conn_str = (
    r"DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};"
    r"DBQ=C:\path\to\your\database.mdb;"
    r"UID=your_username;"
    r"PWD=your_password;"
    r"Exclusive=1;"
    r"Jet OLEDB:Database Password=database_password;"
)
```

其中,Jet OLEDB: 开头的部分是为了设置一些高级选项,比如访问密码。

需要注意的是,为了安全起见,建议将密码存储在某个配置文件中,而不是明文写在代码中。