百木园-与人分享,
就是让自己快乐。

Python使用pyodbc连接Access数据库操作Access2016

Python使用pyodbc连接Access数据库操作Access2016

# -*-coding:utf-8-*-
\'\'\'Access数据库连接网上大致有两种方法,一种是使用pyodbc,另一种是使用win32com.clientI(此处方法一安装,win32com下次有空再试试)
方法一:
一、安装第三方库 pyodbc
Pip install pyodbc

二、检验是否可以正常连接数据库
检查是否有一个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”驱动程序

三、安装64位的ODBC 驱动器:
1.Microsoft Access 2016 数据库引擎可再发行程序包
1.Microsoft Access Database Engine 2016 Redistributable

https://www.microsoft.com/en-us/download/details.aspx?id=54920

2.Microsoft Access 2010 数据库引擎可再发行程序包
2.Microsoft Access Database Engine 2010 Redistributable
https://www.microsoft.com/en-us/download/details.aspx?id=13255
右击文件accessdatabaseengine_X64.exe(约79.5Mb大小)选择以管理员模式运行即可安装【此处使用版本为2016】
    [
    报错:Microsoft office Click-to-Run Service (Process ld: 4240)
    解决:打开任务管理器,可以看到在后台有一个Microsoft Office Click-to-run(SXS)的进程。
    ]

注意:

1. 如何查看Access是32位还是64位
--->>> 文件 >  账户  > 关于Access\'\'\'

import pyodbc

# python_Access.accdb
DBfile = r\"./python_Access.accdb\"  # 数据库文件需要带路径
print(DBfile)
d = [x for x in pyodbc.drivers() if x.startswith(\'Microsoft Access Driver\')]
print(d)
# 连接数据库(不需要配置数据源),connect()函数创建并返回一个 Connection 对象
# 1.创建链接
conn = pyodbc.connect(r\"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=\" + DBfile + \";Uid=;Pwd=;\")
# cursor()使用该连接创建(并返回)一个游标或类游标的对象
# 2.创建游标
cursor = conn.cursor()

# cnxn = pyodbc.connect(\'DSN=pyAcc.mdb;PWD=password\')
# cursor = cnxn.cursor()

print(\'`````````````` 查询所有表名 ``````````````\')
for table_info in cursor.tables(tableType=\'TABLE\'):
    print(table_info.table_name)
# 3.创建SQL查询语句
# SQL = \"SELECT * from datatable;\"
SQL = \"SELECT * from 销售出库详情 where id<10;\"
# 4.执行查询
datas = cursor.execute(\"SELECT * from 销售出库详情\")  # <pyodbc.Cursor object at 0x000001B851E04BB0>
print(type(datas))
for row in cursor.execute(SQL):
    print(row)  # <class \'pyodbc.Row\'>
print(type(row))
cursor.close()
conn.close()

来源:https://www.cnblogs.com/seven18/p/15954540.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python使用pyodbc连接Access数据库操作Access2016

相关推荐

  • 暂无文章