您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

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

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   这篇文章主要介绍了在Linux中通过Python脚本访问mdb数据库的方法,本文示例基于debian系的Linux系统,需要的朋友可以参考下

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

  ?

1 DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:dirfile.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 为例

  ?

1 2 3 4 5 6 7 8 #-*- 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 处理数据,所以对于中文相关的应用, 编码问题无处不在,只得慢慢折腾了。