1

我下载了 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 类中引用 DataSource

我是 Python 的新手,所以如果您能通过 Python 中的示例告诉我相应的步骤,我将不胜感激。

4

3 回答 3

1

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

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

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

于 2010-12-15T19:52:44.787 回答
0

它确实使用 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。

于 2012-02-22T15:53:43.477 回答
0

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)
于 2015-10-01T16:51:17.733 回答