环境 win2008 r2 64为系统
python3.7、pyodbc
安装好python3.7以后,那么就需要安装pyodbc了。
数据库连接
数据库连接网上大致有两种方法,一种是使用pyodbc,另一种是使用win32com.client,测试了很多遍,最终只有pyodbc成功,而且比较好用,所以这里只介绍这种方法
工具库安装
在此基础上安装pyodbc工具库,在cmd窗口执行如下语句安装
pip install pyodbc
如果安装了anaconda也可以使用conda 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”驱动程序
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未发
现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)')
例如上面这样的提示就需要安装64位的ODBC 驱动器:
64位ODBC驱动器的下载地址 https://www.microsoft.com/en-us/download/details.aspx"_blank" href="https://www.jb51.net/softs/695978.html">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()
如果可以打印出结果
完整测试代码
# -*-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()
注意:win7系统是64位,office安装的是32位,AccessDatabaseEngine安装的是32位。
在win7 64位系统打开ODBC数据源管理器:
要查看32位ODBC驱动:运行 C:/Windows/SysWOW64/odbcad32.exe
要查看64位ODBC驱动:运行 C:/WINDOWS/system32/odbcad32.exe或者控制面板—管理工具—数据源(ODBC)
如果只运行odbcad32.exe,则默认打开的是后者。
剩下的就需要你自行发挥了,小编今天就先介绍到这了,后期我们会分享更多的资料
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]