python 操作 access 2016报 [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open
python 操作 access 2016报 [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for...
这两天开发python 访问microsoft access 2016时,无论用pypyodbc,还是用pyodbc都连接不上access 2016数据库,查了一堆资料,尝试重装AccessDatabaseEngine引擎,无论是安装32位的,还是64位的,不断的在windows 内修改odbc32还是64位数据源,都无法解决问题。但突然发现,如果用access 2016新建的一个数据库,就可以connect,想到数据库可能有哪儿不兼容导致的,顺着这个思路,终于解决该问题,前后耗了将近一周的时间,记录在这儿,供大家解决类似问题时参考。
一、开发环境
windows 8 64位操作系统,pyghon 3.8.6, microsoft access 2016 32位,安装的AccessDatabaseEngine 32位访问引擎。连接的数据库在access 2016内能正常打开,但在python内无法建立连接,代码如下:
import pypyodbcstr = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\test\old.accdb;'
db=pypyodbc.connect(str) # 打开数据库连接cursor = db.cursor()
SQL = "SELECT top 1 * from users;"
for row in cursor.execute(SQL):print(row)
cursor.close()
运行后,一直报
Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x1c44 Thread 0x1d50 DBC 0x1c6c5f3c Jet'.")
二、在百度上,一顿操作猛如虎,绐终解决不了问题,一直怀疑是不是access 2016或python 的pypyodbc或pyodbc有问题。
三、偶而用Access 2016建了一个新数据库,唉,用上面的代码就可以正常连接,思路有了,感觉可能是这个将要打开的数据库有问题。
四、尝试将原数据库的表一个一个删除,不断测试,当然,删除表后要压缩下数据库,删除一些无用的空间(这步很重要,不做这步有可能还是打不开)。终于发现是某个表内用了一个"大型页码"的数据类型,将该类型换成其它数据类型,就可以正常打开了。就是这样一个小小问题,卡了我将近一周时间。
到现在我也没有查到这个"大型页码"数据类型是怎么一回事。
如与我一样有碰到上面问题,可以供大家一点参考。
python 操作 access 2016报 [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open相关推荐
- [Microsoft][ODBC SQL Server Driver][SQL Server]数据库‘XXXXXX‘的事务日志已满。解决办法!
下午上班,关务人员反应报关软件无法使用,截图过来看了下,报错提示如下: [Microsoft][ODBC SQL Server Driver][SQL Server]数据库'XXXXXX'的事务日志已 ...
- [Microsoft][ODBC SQL Server Driver]TDS 缓冲区长度过大
[Microsoft][ODBC SQL Server Driver]TDS 缓冲区长度过大 当未能返回立即慢速网络传输, 数据由于 ODBC 驱动程序的 Net-Library 调用驱动程序切换到异 ...
- [Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e57' [Microsoft][ODBC SQL Server Driver][SQL Ser ...
- 用eclipse连接数据库捕获java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
用eclipse连接数据库捕获异常显示java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数 ...
- python连接sqlServer,报错:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
1. 在jupyter notebook连接sqlServer报错 报错信息:InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] ...
- Python操作文件,报FileNotFoundError: [Error 2] No such file or directory错误
python操作文件时,报No such file or directory错误. 多次检查目录.文件名.语法都是对的. 折腾一番后,打开文件所在文件夹,并显示所有文件后缀名,才发现此文件并没有txt ...
- python操作excel 2016
Python操作 Excel97-2003 一般使用 xlwt 模块,如果要操作(.xlsx) 的版本,需要使用 openpyxl 模块 下面示例,打印9X9乘法表 import openpyxlw ...
- python安装依赖失败_python执行安装第三方依赖numpy失败:error: Unable to find vcvarsall.bat...
一台计算机上同时安装了python2.7和python3.7. 现在为python2.7安装numpy包. 失败:error: Unable to find vcvarsall.bat ======= ...
- [Microsoft][ODBC SQL Server Driver][SQl Server]参数数据类型 text 对于 replace 函数的参数 1 无效。...
说到数据库中文本的替换,一般人首先想到的是Replace函数: update Table set Column=Replace(Column,'oldkeyword','newkeyword') 不过 ...
最新文章
- C# 基础知识 (三).主子对话框数值传递
- android开发分页查询,Android开发中实现分页效果的简单步骤
- 微信小程序开发教程第五章:微信小程序名片夹详情页开发
- pb5.0-pb10.0各版本高速下载
- 毕设开题报告重要内容
- 测试路由器丢包的软件,如何判断路由是否丢包以及丢包的原因和解决方法
- 几种常见简易的恒流源电路
- QQ邮箱搜索器 邮箱地址批量搜索
- egret eui.Button改变文本、背景色及是否可点击
- Mac苹果移动硬盘数据丢失怎么恢复?
- 5G消息RCS、chatboot
- pyinstaller打包exe加入版本和版权信息
- 二阶矩过程、平稳过程和随机分析
- 学编程用什么系统好?
- VUE plugin 插件
- 欲望、外界、标签、天才、时间、经历、人生目标、后悔、和现实。转自特种兵—AK47
- Oracle ASM磁盘组冗余机制(Failure group)
- 全球与中国PH和ORP通用分析仪市场深度研究分析报告
- Java:从lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量
- 用python打开浏览器的四种方法