繁体   English   中英

pyodbc。错误'IM002'连接到DB2

[英]pyodbc.Error 'IM002' connecting to DB2

我下载了Python 2.7( python-2.7.1.amd64.msi )和pyodbc,这是用于连接到DB2数据库的python扩展模块(即pyodbc-2.1.8.win-amd64-py2.7.exe )。

我编写了示例脚本,如下所示。

import csv 
import pyodbc 
conn = pyodbc.connectpyodbc.connect('DRIVER={DB2};SERVER=localhost;DATABASE=DBT1;UID=scott;PWD=tiger;')  
curs = conn.cursor() 
curs.execute('select count(edokimp_id) from edokimp') 
print curs.fetchall() 

脚本抛出以下错误

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

由于我是Python的新手,因此从错误中意识到,我需要下载用于pyodbc的IBM DB2驱动程序,因此在Google上进行了广泛搜索,但找不到任何内容。

如果您能指向我可以下载驱动程序的站点,以后再向我解释如何配置/加载驱动程序,将不胜感激。

如果是Java

  • 该驱动程序将以ojdbc.jar的形式提供,它将被复制到将在类路径上的lib目录中
  • 更改配置文件
  • 从Java类引用数据源

我是Python的新手,因此,如果您可以通过Python的示例让我知道对应的步骤,将不胜感激。

您可以在项目主页上获取PyDB2驱动程序

如果您在使用官方Python时遇到编译问题,则ActivePython是Windows上Python的良好替代发行版。

编辑:如果它要求您提供DB2标头,则需要获取ODBC和CLIIBM数据服务器客户端

这个pyodbc的连接字符串对我有用:

conexion_str = 'SYSTEM=%s;db2:DSN=%s;UID=%s;PWD=%s;DRIVER=%s;' % (self._SYSTEM, self._DSN, self._UID, self._PWD, self._DRIVER)
self._cnn = pyodbc.connect(conexion_str)

它确实可以使用pyodbc 我认为您的连接字符串错误。 经过一些研究和测试,我用以下代码解决了:

con = pyodbc.connect('DRIVER=iSeries Access ODBC Driver;SYSTEM=10.0.0.1;UID=bubi;PWD=xyz;DBQ=DEFAULTSCHEMA;EXTCOLINFO=1')
cur = con.cursor()
cur.execute('select * from MYTABLE')
row = cur.fetchone()
if row:
    field1 = row[0] 
    field2 = row[1]
# etc...

如您所见,它不需要在系统上配置DSN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM