python连接服务器informix_Python 用odbc连接Informix数据库 64位

最开头要说明一下,64位的python, 要配64位的ODBC;32位python配32位的ODBC。

因为在使用pyodbc时,ODBC是跟着Python位来的,虽说有办法可以同时使用32位和64位python,但是我曾下载32位odbc并尝试兼容32位python后并没有连接的上数据库。

另外一个我花了很长时间踩坑的地方就是解决中文乱码问题,文章后面我有写到,也是感谢部门的小伙伴点醒了我在python里设定encoding用GBK而不是UTF-8。需要提醒的是用GBK还是UTF-8是要根据你们自己的数据库情况而定。

下载Informix 64位 ODBC 3.5+ 以及驱动

打开C:\Windows\System32\odbcad32 注意system32里打开的odbc才是64位的odbc进行odbc配置,输入数据库的相关信息

这里的Client Locale和Database Locale根据自己数据库配置设定。

3. 对安装好的IBM Informix Setnet32进行配置。同样根据数据库的信息填写

注意Environment里 CLIENT_LOCALE和DB_LOCALE我设为en_US.819,是因为我们数据库采取的是此配置,这个要根据各自的数据库当初设定情况来填写。

4. ok,我们可以在python里连接数据库了。

我的python是3.7 64位,使用Pyodbc连接。有两种方式:connect DSN 根据前面我们在ODBC数据资源库信息填写

Driver/Server/uid/pwd 根据自己数据库的信息填写

import pyodbc

conn = pyodbc.connect ( 'DSN=***' )

cursor = conn . cursor ( )

cursor.execute('select * from testdbzmq@***:zmqcompany')

cursor.fetchmany(2)

conn = pyodbc.connect('Driver={IBM INFORMIX ODBC DRIVER (64-bit)};Server=***;DATABASE=***;uid=***;pwd=***;encoding = gbk')

cr = conn.cursor()

cr.execute('SELECT first 2 comc from zmqcompany')

cr.fetchmany(2)

连接数据库以后会出现中文展示乱码的情况,用setdecoding方式可以解决

conn.setdecoding(pyodbc.SQL_WCHAR, encoding='GBK')

conn.setdecoding(pyodbc.SQL_CHAR, encoding='GBK')

conn.setencoding(encoding='GBK')

conn.maxwrite = 1024 * 1024 * 1024

cr.execute('SELECT first 2 comc from zmqcompany')

cr.execute('SELECT first 2 comc from zmqcompany')

cr.fetchmany(2)

需要注意的是:我们使用的数据库中文配置为:GBK。

如果是utf-8设置的把GBK 换成UTF-8即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值