【问题标题】:pyodbc.Error 'IM002' connecting to DB2pyodbc.Error 'IM002' 连接到 DB2
【发布时间】:2010-12-15 16:30:32
【问题描述】:

我下载了 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 中的示例告诉我相应的步骤,我将不胜感激。

【问题讨论】:

  • 我希望这不是你的真实密码...
  • 当然不是它的标准数据库用户名/密码,即 scott/tiger :)

标签: python db2 pyodbc


【解决方案1】:

您可以在项目主页上获取PyDB2 driver

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

编辑:如果它要求您提供 DB2 标头,您需要获取 IBM Data Server Client for ODBC and CLI

【讨论】:

  • 感谢莱昂斯。想知道为什么我不能使用“pyodbc”运行它,除非我遗漏了什么。我确实研究了 PyDB2 驱动程序,但由于我是 Python 的新手,我不知道如何配置/加载驱动程序。我是否需要像在 JAVA 中那样更改配置文件,然后从 python 脚本调用 DataSource。一个例子将不胜感激
  • PyODBC 应该可以工作,但我认为您需要定义一个数据源。在 Windows XP 中,您可以在控制面板 > 管理工具 > 数据源 (ODBC) > 系统 DSN 下执行此操作。
【解决方案2】:

确实可以使用 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

【讨论】:

    【解决方案3】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多