使用Python对Access读写操作

编程入门 行业动态 更新时间:2024-10-23 19:32:31

使用Python对Access读写<a href=https://www.elefans.com/category/jswz/34/1770947.html style=操作"/>

使用Python对Access读写操作

学习Python的过程中,我们会遇到Access的读写问题

一、可以利用win32.client模块的COM组件访问功能,通过ADODB操作Access的文件。

1、导入模块

import win32com.client

2、建立数据库连接

conn = win32com.client.Dispatch(r"ADODB.Connection")
DSN = 'PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = test.mdb'
conn.Open(DSN)

3、打开一个记录集

rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs_name = 'MEETING_PAPER_INFO'
rs.Open('[' + rs_name + ']', conn, 1, 3)

4、对记录集操作

rs.AddNew()  #添加一条新记录
rs.Fields.Item(0).Value = "data"  #新记录的第一个字段设为"data"
rs.Update()  #更新

5、用SQL语句来增、删、改数据

# 增
sql = "Insert Into " rs_name + " (id, innerserial, mid) Values ('002133800088980002', 2, '21338')"  #sql语句
conn.Execute(sql)  #执行sql语句
# 删
sql = "Delete * FROM " + rs_name + " where innerserial = 2"
conn.Execute(sql)
# 改
sql = "Update " + rs_name + " Set mid = 2016 where innerserial = 3"
conn.Execute(sql)

6、查:遍历记录

rs.MoveFirst()  #光标移到首条记录
count = 0
while True:if rs.EOF:breakelse:for i in range(rs.Fields.Count):#字段名:字段内容print(rs.Fields[i].Name, ":", rs.Fields[i].Value)count += 1rs.MoveNext()

7、关闭数据库

conn.Close()

二、利用pypyodbc模块
1.导入模块

import pypyodbc

2.建立数据库连接

在学习过程中有什么不懂得可以加
我的python学习交流扣扣qun,688244617
群里有不错的学习教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。#建立数据库连接
def mdb_conn(db_name, password = ""):"""功能:创建数据库连接:param db_name: 数据库名称:param db_name: 数据库密码,默认为空:return: 返回数据库连接"""str = 'Driver={Microsoft Access Driver (*.mdb)};PWD' + password + ";DBQ=" + db_nameconn = pypyodbc.win_connect_mdb(str)return conn

3.创建游标

cur = conn.cursor()

4.用sql语句来增、删、改、查数据

#增
def mdb_add(conn, cur, sql):"""功能:向数据库插入数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#删
def mdb_del(conn, cur, sql):"""功能:向数据库删除数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#改
def mdb_modi(conn, cur, sql):"""功能:向数据库修改数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#查
def mdb_sel(cur, sql):"""功能:向数据库查询数据:param cur: 游标:param sql: sql语句:return: 查询结果集"""try:cur.execute(sql)return cur.fetchall()except:return []

5.关闭游标

cur.close()

6.关闭数据库连接

conn.close()

附:pypyodbc模块的完整测试代码

# -*- coding:utf-8 -*-
__author__ = 'mayi'#导入模块
import pypyodbc#定义conn
def mdb_conn(db_name, password = ""):"""功能:创建数据库连接:param db_name: 数据库名称:param db_name: 数据库密码,默认为空:return: 返回数据库连接"""str = 'Driver={Microsoft Access Driver (*.mdb)};PWD' + password + ";DBQ=" + db_nameconn = pypyodbc.win_connect_mdb(str)return conn#增加记录
def mdb_add(conn, cur, sql):"""功能:向数据库插入数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#删除记录
def mdb_del(conn, cur, sql):"""功能:向数据库删除数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#修改记录
def mdb_modi(conn, cur, sql):"""功能:向数据库修改数据:param conn: 数据库连接:param cur: 游标:param sql: sql语句:return: sql语句是否执行成功"""try:cur.execute(sql)conn.commit()return Trueexcept:return False#查询记录
def mdb_sel(cur, sql):"""功能:向数据库查询数据:param cur: 游标:param sql: sql语句:return: 查询结果集"""try:cur.execute(sql)return cur.fetchall()except:return []if __name__ == '__main__':pathfile = 'test.mdb'tablename = 'prov'conn = mdb_conn(pathfile)cur = conn.cursor()#增sql = "Insert Into " + tablename + " Values (33, 12, '天津', 0)"if mdb_add(conn, cur, sql):print("插入成功!")else:print("插入失败!")#删sql = "Delete * FROM " + tablename + " where id = 32"if mdb_del(conn, cur, sql):print("删除成功!")else:print("删除失败!")#改sql = "Update " + tablename + " Set IsFullName = 1 where ID = 33"if mdb_modi(conn, cur, sql):print("修改成功!")else:print("修改失败!")#查sql = "SELECT * FROM " + tablename + " where id > 10"sel_data = mdb_sel(cur, sql)print(sel_data)cur.close()    #关闭游标conn.close()   #关闭数据库连接

更多推荐

使用Python对Access读写操作

本文发布于:2023-07-28 22:05:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1335943.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:操作   Python   Access

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!