pypyodbc 连接Access数据库常见报错整理

一、背景

​ 我目前用的数据库是Access,是微软旗下的一个小型数据库,有可视化界面,创建数据库跟创建一般的文件操作是一样的。创建好的数据库可以把它简单的理解成一个后缀为.odbc的文件,因为可以可视化操作,创建表也简单。所以创建库和表没必要写sql语句,不在本文描述范围内。

​ 我这个人比较懒,喜欢把数据分析工作的例事写成python脚本,每周或者每个月运行一次,自己坐在旁边摸鱼就好了。脚本的思路是用python把相关的数据从Access数据库里提取出来,然后用pandas来做数据操作,最后再把结果导出成excel或者写到其他数据库里,所以目前用到的也只是python连接数据库、表的查询、插入。代码报错本来就是一件很正常的事,我之前也会带着报错信息去百度,但是由于Access有些老了,相应的找到的帖子也比较老,本文就是整理了一下这个过程中常见的报错和解决方法。

二、pypyodbc连接Access数据库常见操作

1、连接数据库:

import pypyodbc
import pandas as pd
strs = "Driver={Microsoft Access Driver(*.mdb,*.accdb)};DBQ=文件路径"
db = pypyodbc.win_connect_mdb(strs)  # 连接数据库
cursor = db.cursor()  #创建手柄

2、数据查询:

cursor.excute("select * from [表名]") #注意这里的中括号不是代表可以不传,而是为了避免因为中文表名引起的报错
data = cursor.fecthall() #变量接受数据,此时的数据是以二维列表存储的,也没有列名
data = pd.DataFrame(data)
data.columns = [col[0] for col in cursor.description]  #cursor.description返回表的结构

cursor.excute()执行sql语句,除此之外还有cursor.excutemany() 、cursor.commit()等,大致跟pymysql差不多

3、将DataFrame数据插入数据库

cursor.executemany("insert into [表名] (字段1,字段2,字段2,...) values (?,?,?,...)",data.itertuples(index=False)) #遍历data数据,并逐条插入指定表内,values值用问号?占位,问号数量与字段数量保持一致
cursor.commit()

三、常见报错

1、函数序列错误:

(1) 问题根源一:数据源没有配置驱动

解决方法:配置驱动

步骤:

A、打开数据源管理器:打开控制面板——>系统和安全——>管理工具——>ODBC数据源(64位)

B、添加DNS:选择用户DNS或系统DNS——>点击添加——>选择Microsoft Access Driver(.mdb,.accdb)——>完成


注:上图中几个Microsoft Access开头的驱动程序都是常见的驱动,如果你的电脑上没找到,直接百度搜索下载ODBC驱动程序,然后默认安装就可以

C、命名数据源名——>选择数据源——>在目录下面找到数据库文件所在路径,或者在数据库名下面强写数据库路径——>确定

D、剩下的就是一路确定,要修改的话就是在用户DNS那里找到对应的数据源点击配置重复步骤C

(2)问题根源二:DataFrame为空,无法遍历

解决方法:检查自己的数据,DataFrame对象有数据即可

2、不能打开数据库|应用程序可能无法识别该数据库…:

问题根源:数据库达到内存上限,Access是小型数据库,一个库的内存上限是2G左右,数据库内存接近2G的时候如果再往里面插入过多数据就会报错

解决方法:换个数据库存储

3、无效的字符值或规格:

问题根源:待插入的数据类型与表的字段类型不符,多发生于日期类、数字类字段

解决方法:打开数据库对应表的设计视图,查看数据字段类型和格式。修改DataFrame对象对应列的类型

4、无效的sql语句、语句的语法错误、语法错误 (操作符丢失) 在查询表达式

问题根源:sql语句错误,且Access支持的sql语句跟sql server也有一些细微的区别

解决问题:检查sql语句,或者写一些简单的查询语句,再由pandas来处理数据
问题根源:sql语句错误,且Access支持的sql语句跟sql server也有一些细微的区别**

解决问题:检查sql语句,或者写一些简单的查询语句,再由pandas来处理数据

pypyodbc 连接Access数据库常见报错整理相关推荐

  1. MySQL数据库常见报错案例与错误代码说明

    实例报错问题分析与解决方法: -报错1: Can't open file: 'xxx_forums.MYI'. (errno: 145) 问题分析: 这种情况是不能打开 cdb_forums.MYI造 ...

  2. postgres数据库常见报错

    1.删除数据库报错 : postgres=# drop database lyy; ERROR: database "lyy" is being accessed by other ...

  3. python之常见报错整理

    一.unindent does not match any outer indentation level 对于此错误,最常见的原因是,的确没有缩进.必须注意缩进问题,尤其是在python中,稍不注意 ...

  4. C#连接Access数据库时报错

    文章目录 不可识别数据库格式 解决: 连接测试: 不可识别数据库格式 解决: Access数据库默认创建的数据库格式后缀一般为".accdb",需要把它改为".mdb&q ...

  5. python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解

    看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最 ...

  6. web报表工具FineReport使用中遇到的常见报错及解决办法(一)

    FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己. 出现问题先搜一下文档上有没有,再看看度娘有没有,再看看 ...

  7. docker安装mysql及相关配置、运行细节和常见报错解决方案

    安装.运行 需要特别注意-v挂载到本机的目录的权限问题,否则报错:ERROR 2002 (HY000): Can't connect to local MySQL server through soc ...

  8. 关于Findbugs的一些常见报错的翻译和处理方式

    在Lab5中要求使用 CheckStyle 和 FindBugs 工具对经过人工走查的 Lab4 代码进行自动的静态代码分析.在使用FindBugs的过程中,出现了一些难以理解的报错,经查阅资料,了解 ...

  9. 配置hadoop集群常见报错汇总

    配置hadoop集群常见报错汇总 1.使用hdfs namenode -format 格式化报错找不到JAVAHOME 该问题只需在对应的窗口导入JAVAHOME即可,注意,此处为对应环境安装的JDK ...

  10. 超微主板BIOS常见报错代码

    超微主板BIOS自检时,部分问题会在显示器上输出,debug码会在屏幕的右下角以数字和字母组合的方式显示.了解常见的报错代码含义,可以有效的帮助使用者快速判断问题原因.详细的debug码解释可以参照& ...

最新文章

  1. 第九次作业——测试报告与用户手册
  2. Android程序ToDoList增加配置项页面
  3. lodash(一)数组
  4. pytorch判断NaN
  5. xsy 1836 - Shop
  6. kafka log4j配置
  7. 模型预测控制c语言程序_基于数据驱动的模型预测控制
  8. java圆形进度条_可拖拽圆形进度条组件(支持移动端)
  9. jquery中的 jquery.contains(a,b)
  10. 论文浅尝 - ICLR2020 | Pretrained Encyclopedia: 弱监督知识预训练语言模型
  11. 转载:camera - 滤镜格式 (原生RGGB、RCCB、RCCC、RGB-IR和Monochrome(单色传感器))
  12. 「Python海龟画图」利用海龟画笔绘制谢尔宾斯基三角形
  13. 世界三大顶级音响_世界十大名牌音响有那些
  14. 原生js生成气泡碰撞,随机生成颜色
  15. Fallback class must implement the interface annotated by @FeignClient
  16. 爱奇艺大数据实时分析平台的建设与实践
  17. 3种常见的数据库迁移同步工具对比,哪个更适合你?
  18. iOS客户端的title不显示解决方案
  19. 如我提升自我学习能力
  20. [转]轻松获得网通、电信、铁通IP地址分配段

热门文章

  1. 2019深圳杯获奖论文_我校研究生喜获2019年“深圳杯”数学建模挑战赛决赛三等奖...
  2. 磁盘blk_update_request: I/O error
  3. Auto CAD:CAD绘图设计以项目为导向,从八大角度快速设计技巧经验总结(基本绘图、图形编辑与修改、图层运用、尺寸标注、布局、CAD参数化、三视图操作、轴测图)之详细攻略
  4. 易鲸捷数据库创建全局递增序列和oracle的RAC模式下的全局递增序列类似
  5. 用html编写古诗词欣赏,品析古诗词画面描写之技巧
  6. c语言编程定义符号,C语言:条件编译及预定义符号知识详解
  7. 世界和平 - 中国国际友好城市数据集
  8. 数据科学 | Numpy入门教程
  9. python 数学公式_pythonp_word03公式编辑器,空心方阵公式,高中数学必修一公式,销售利润率公式,高一物理必修1公式...
  10. 分享nbsp;康奈尔大学做笔记的方法