在Linux中通过Python脚本访问mdb数据库的方法


Posted in Python onMay 06, 2015

在 linux 系统中连接 mdb 数据库,直接连接的话,mdb 默认的驱动无法识别非 windows 的路径, 所以不能使用常规的连接方式

DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\dir\\file.mdb

安装

这里我们需要借助一些库来实现第三方的驱动

我们需要安装这些包:mdbtools, unixODBC, libmdbodbc

如果是支持 deb 的系统中,如果不能找到 libmdbodbc ,将以下路径加入到软件源列表中

deb http://ftp.de.debian.org/debian squeeze main

更新源后即可可以安装 libmdbodbc 了
配置

安装了需要的包后,需要做一些配置,才能支持 libmdbodbc 的驱动

/etc/odbcinst.ini
[MDBToolsODBC]

Description = MDB Tools ODBC

Driver = /usr/lib/libmdbodbc.so.0

Setup =

FileUsage =

CPTimeout =

CPReuse =

/etc/odbc.ini 或者 ~/.odbc.ini

[test]

Description = Microsoft Access Try DB

Driver = MDBToolsODBC

Database = /path/to/mdb/file/test.mdb

Servername = localhost

Username =

Password =

port = 5432

代码

配置好数据源后,就可以用于任何支持 odbc 访问的应用中了,这里以 pyodbc 为例

#-*- coding: utf-8 -*-
import pyodbc

conn = pyodbc.connect('DSN=test');
cursor = conn.cursor()
cursor.execute('select * from "省"')
for row in cursor.fetchall():
 print row.Name

注:如果是操作名称中文的表或者字段等,需要将其包含在双引号中,不然会出错,当然,将表名做成中文这么二的做法, 还是不推荐使用的啦

pyodbc 是个很不错的库,api 也很好用,不过对中文支持的并不好,它并没有默认以 unicode 处理数据,所以对于中文相关的应用, 编码问题无处不在,只得慢慢折腾了。

Python 相关文章推荐
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
十个Python程序员易犯的错误
Dec 15 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
《Python学习手册》学习总结
Jan 17 Python
Python for循环生成列表的实例
Jun 15 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
Numpy之reshape()使用详解
Dec 26 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 Python
python合并多个excel文件的示例
Sep 23 Python
python中的对数log函数表示及用法
Dec 09 Python
python中黄金分割法实现方法
May 06 #Python
使用rpclib进行Python网络编程时的注释问题
May 06 #Python
pymongo给mongodb创建索引的简单实现方法
May 06 #Python
Python中用PIL库批量给图片加上序号的教程
May 06 #Python
python写入中英文字符串到文件的方法
May 06 #Python
python使用xlrd模块读写Excel文件的方法
May 06 #Python
在Python中使用全局日志时需要注意的问题
May 06 #Python
You might like
php使用PDO方法详解
2014/12/27 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
django迁移数据库错误问题解决
2019/07/29 Python
python异常处理和日志处理方式
2019/12/24 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
员工工作表扬信范文
2014/01/13 职场文书
班组长竞聘书
2014/03/31 职场文书
教室布置标语
2014/06/26 职场文书
2014年内勤工作总结
2014/11/24 职场文书
作弊检讨书
2015/01/27 职场文书
保送生自荐信
2015/03/06 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书