资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么在Python3.7中使用pyodbc配置访问access数据库-创新互联

今天就跟大家聊聊有关怎么在Python3.7中使用pyodbc配置访问access数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联公司是专业的安阳县网站建设公司,安阳县接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行安阳县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

数据库连接

数据库连接网上大致有两种方法,一种是使用pyodbc,另一种是使用win32com.client,测试了很多遍,最终只有pyodbc成功,而且比较好用,所以这里只介绍这种方法

工具库安装

在此基础上安装pyodbc工具库,在cmd窗口执行如下语句安装

pip install pyodbc

如果安装了anaconda也可以使用conda install pyodbc

怎么在Python3.7中使用pyodbc配置访问access数据库

分享给大家供大家参考,具体如下:

检验是否可以正常连接数据库检查是否有一个Microsoft Access ODBC驱动程序可用于你的Python环境(在Windows上)的方法:

>>> import pyodbc
>>>[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

如果你看到一个空列表,那么您正在运行64位Python,并且需要安装64位版本的“ACE”驱动程序。如果您只看到['Microsoft Access Driver (*.mdb)']并且需要使用.accdb文件,那么您需要安装32位版本的“ACE”驱动程序

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未发
现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)')

例如上面这样的提示就需要安装64位的ODBC 驱动器:

64位ODBC驱动器的下载地址 https://www.microsoft.com/en-us/download/details.aspx?id=13255
直接安装会报错,所以我们需要修改一下文件AccessDatabaseEngine_X64.exe,先对其进行解压,然后打开AccessDatabaseEngine_X64文件夹,有一个AceRedist.msi文件。用Orca软件将AceRedist.msi打开,找到找到LaunchCondition里面的BLOCKINSTALLATION,删除那一行数据并进行保存。然后再运行AceRedist.msi,就可以把64位的ODBC 驱动器安装成功。

如果感觉上面的操作比较麻烦,可以直接下载创新互联成都网站设计公司小编已经处理过的版本。

下载地址:https://www.jb51.net/softs/695978.html

注意:

1、不用配置数据源
2、Orcad的下载地址 https://www.jb51.net/softs/16217.html

下面是经过创新互联成都网站设计公司小编测试过的代码

access是2000的,理论上2010也可以。

import pyodbc 
 
DBfile = r"F:\python\caiji.mdb" # 数据库文件需要带路径
print(DBfile)
conn = pyodbc.connect(r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+ DBfile +";Uid=;Pwd=;") 
cursor = conn.cursor() 
SQL = "SELECT * from sites;"
for row in cursor.execute(SQL): 
 print(row) 
cursor.close() 
conn.close()

如果可以打印出结果

怎么在Python3.7中使用pyodbc配置访问access数据库

完整测试代码

# -*-coding:utf-8-*-
import pyodbc
 
# 连接数据库(不需要配置数据源),connect()函数创建并返回一个 Connection 对象
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=.\data\goods.mdb')
# cursor()使用该连接创建(并返回)一个游标或类游标的对象
crsr = cnxn.cursor()
 
# 打印数据库goods.mdb中的所有表的表名
print('`````````````` goods ``````````````')
for table_info in crsr.tables(tableType='TABLE'):
 print(table_info.table_name)
 
 
l = crsr.execute("SELECT * from goods WHERE goodsId='0001'")# [('0001', '扇叶', 20, 'A公司', 'B公司', 2000, 2009)]
 
rows = crsr.execute("SELECT currentStock from goods") # 返回的是一个元组
for item in rows:
 print(item)
 
l = crsr.execute("UPDATE users SET username='lind' WHERE password='123456'")
print(crsr.rowcount) # 想知道数据修改和删除时,到底影响了多少条记录,这个时候你可以使用cursor.rowcount的返回值。
 
# 修改数据库中int类型的值
value = 10
SQL = "UPDATE goods " \
 "SET lowestStock=" + str(value) + " " \
 "WHERE goodsId='0005'"
 
# 删除表users
crsr.execute("DROP TABLE users")
# 创建新表 users
crsr.execute('CREATE TABLE users (login VARCHAR(8),userid INT, projid INT)')
# 给表中插入新数据
crsr.execute("INSERT INTO users VALUES('Linda',211,151)")
 
''''''
# 更新数据
crsr.execute("UPDATE users SET projid=1 WHERE userid=211")
 
# 删除行数据
crsr.execute("DELETE FROM goods WHERE goodNum='0001'")
 
# 打印查询的结果
for row in crsr.execute("SELECT * from users"):
 print(row)
 
 
# 提交数据(只有提交之后,所有的操作才会对实际的物理表格产生影响)
crsr.commit()
crsr.close()
cnxn.close()

补充

# -*- coding: utf-8 -*-
# 功能:python连接access2010数据库(.accdb)
 
import pyodbc
 
DBfile = r"C:\Users\lenovo\Desktop\test.accdb" # 数据库文件
conn = pyodbc.connect(r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + DBfile + ";Uid=;Pwd=;")
 
 
cursor = conn.cursor()
SQL = "SELECT * from table1;"
for row in cursor.execute(SQL):
  print row.col1
cursor.close()

看完上述内容,你们对怎么在Python3.7中使用pyodbc配置访问access数据库有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联成都网站设计公司行业资讯频道,感谢大家的支持。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:怎么在Python3.7中使用pyodbc配置访问access数据库-创新互联
转载源于:http://cdkjz.cn/article/hhsod.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220