一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Mac OS X中pypyodbc访问mdb数据库实例教程

时间:2015-03-23 编辑:简简单单 来源:一聚教程网

首先使用brew安装unixodbc和mdbtools,unixodbc是odbc驱动管理器,mdbtools提供了一组mdb操作工具,更重要的是mdbtools提供了mdb驱动程序。

$ brew install unixodbc
$ brew install mdbtools

但是安装完成后发现/usr/local/lib目录中没有mdbtools驱动动态链接库libmdbodbc.dylib

查看mdbtools选项可以发现:

$ brew options mdbtools
--with-man-pages
        Build manual pages

mdbtools formula并没有提供--with-unixodbc选项,默认也没有build mdb驱动,因此需要手动来编译安装mdbtools提供的mdb driver

编译安装libmdbodbc

brew安装mdbtools时已经将mdbtools的源码包下载到了目录/Library/Caches/Homebrew/,所以直接使用这个源码包编译安装就可以了。

$ tar zxvf mdbtools-0.7.1
$ cd mdbtools-0.7.1
$ autoreconf -i -f
$ ./configure --with-unixodbc=/usr/local --disable-man
$ make
$ cd src/odbc
$ sudo make install

这样libmdbodbc驱动程序就安装到了/usr/local/lib目录下。libmdbodbc的源代码就在src/odbc目录下。

配置unixodbc

因为brew的所有包都安装在/usr/local下面,因此这里配置unixodbc应该使用/usr/local/etc/目录下的odbcinst.ini和odbc.ini文件。
odbcinst.ini配置如下:

[MDBTools]
Description=MDBTools Driver
Driver=libmdbodbc.dylib
Setup=libmdbodbc.dylib
FileUsage=1
UsageCount=1

然后就可以像linux平台上一样来访问mdb文件了。

$ python3
>>> import pypyodbc
>>> conn=pypyodbc.connect('Driver=MDBTools;DBQ=/path/to/record.mdb')

因为这里也是使用mdbtools提供的odbc驱动,所以和pypyodbc配合使用时仍然存在中文字符编码转换的问题,请参数:linux中pypyodbc读取GB编码mdb中文乱码解决办法。

热门栏目