配置ubuntu odbc和pypyodbc

作者:

1. 安装分为三步

1.1. 第一步、安装 ODBCFreeTDS 模块

sudo apt-get install tdsodbc unixodbc

1.2. 第二步、修改/etc/odbcinst.ini

[FreeTDS] Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

1.3. 第三步、修改/etc/freetds/freetds.conf

[Global] TDS_Version = 8.0 client charset = UTF-8

2. pypyodbc 的安装和使用

2.1. pypyodbc 安装

pip install pypyodbc

2.2. pypyodbc 示例代码

import pypyodbc 
conn = pypyodbc.connect('Driver=FreeTDS;Server=192.168.1.2;port=1433;uid=sa;pwd=pwd1;database=db_name') 
print conn.cursor().execute('select * from a_table').fetchone()[0]

2.3. pypyodbc 的中文乱码问题

一个烦心事情是 pypyodbc 查询到的中文结果都显示为问号乱码,下面的代码可以解决这个问题。但会导致无法正常获取查询结果的字段名称( curser.description 结果异常)。由于修改了 sys 全局设置,目前不清楚是否还有其它副作用。

import sys
reload(sys)
sys.setdefaultencoding('utf8')

pyodbc.connect(connStr,unicode_results=True, charset="utf8")

Q. E. D.

类似文章:
boost 是除 std 外最常用的 C++库,覆盖很多常用操作。目前最新的版本是 1.59.0
编程 » Excel, 数据库
在前面的文章里,我已经提到 Excel 数据本身可以当做一张 SQL 查询的数据表 ,并在 Excel 内进行数据库运算操作。数据库查询函数可以用我之前写的 Excel 数据库操作函数类 。我们可以用以下方式
编程 » C++, 内存检查, Linux
获取程序占用的内存量,是一个诡异的需求。但程序写多了,有时候还真需要,尤其是代码运行出现问题的时候。
编程 » Linux, rsync
在同步一个超大文件时,发现 rsync 并没有按照预期的同步一个文件。而使用 md5sum 检验文件内容时,原始文件和目标文件的内容并不一样。
boost 是除 std 外最常用的 C++库,覆盖很多常用操作。目前最新的版本是 1.59.0
编程 » GIT
git 经常出现类似于 HEAD detached at origin/development 的错误提示。这是因为当前的 HEAD 没有位于任何一个分支上的缘故。