[英]pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
[英]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
我是Python的新手,因此,如果您可以通过Python的示例让我知道对应的步骤,将不胜感激。
您可以在项目主页上获取PyDB2驱动程序 。
如果您在使用官方Python时遇到编译问题,则ActivePython是Windows上Python的良好替代发行版。
编辑:如果它要求您提供DB2标头,则需要获取ODBC和CLI的IBM数据服务器客户端 。
这个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.