64位Python无法识别32位ODBC驱动

    很老的一个项目,用的是很老的interbase7.5的数据库,想对它进行读写。手上只有一个32位的ODBC驱动。

系统环境是:

1、64位Win7。

2、64位的Pycharm安装了64位的python3.7 (使用anaconda)

3、在Win7里面使用 C:\Windows\SysWOW64\odbcad32.exe配置好了32位的驱动

/

4、使用pyodbc来连接数据库

发现pyodbc的驱动只有64位的驱动,没有32位的驱动

怎么办,找了很多文章,还是用anaconda多安装了一个32位的python

怎么用anaconda安装32位python可以见

https://blog.csdn.net/vample/article/details/88877745

5、安装了32的python发现可以找到32位的驱动了

import pyodbc
hostname = '127.0.0.1'
dsnName = 'STATIC'
username = 'SYSDBA'
passwd = 'masterkey'
#interbase套接字
constr = 'DSN=%s;Uid=%s;Pwd=%s'%(dsnName,username,passwd)
cnxn =pyodbc.connect(constr)
cursor =cnxn.cursor()
cursor.execute("select * from station")
rows =cursor.fetchall()
for row in rows:
    print(row)

就可以正常访问数据库了,其他ODBC驱动我想也可以一样解决

6、这是访问的charset = NONE的interbase7.5可以正常显示中文,不需要转码

charset = UNICODE_FSS的中文需要转码

cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setencoding(encoding='utf-8')

即可正确显示中文

pyodbc使用?作为通配符, [ ]作为参数

self.IB.cursor.execute("""
                            update station set name=?  where id=?
                            """,[name,id])
self.IB.cursor.commit()
 

 

 

 

 

                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值