在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局域网ip扫描示例分享
Apr 03 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Python3基础之输入和输出实例分析
Aug 18 Python
用Python登录Gmail并发送Gmail邮件的教程
Apr 17 Python
分享Python字符串关键点
Dec 13 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
用Python中的turtle模块画图两只小羊方法
Apr 09 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
Python实现弹球小游戏
Aug 01 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实现批量上传单个文件
2015/12/29 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
numpy数组拼接简单示例
2017/12/15 Python
Python延时操作实现方法示例
2018/08/14 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
网吧消防安全制度
2014/01/28 职场文书
美容院考勤制度
2014/01/30 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
安全责任书范文
2014/03/12 职场文书
毕业生面试求职信
2014/06/23 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技