gpt4 book ai didi

python - 使用 pyodbc 连接到 Db2 for IBM i 时出现问题

转载 作者:行者123 更新时间:2023-12-02 16:11:20 24 4
gpt4 key购买 nike

我正在尝试使用 pyodbc 和 ibm db2 odbc 驱动程序通过 db2 连接到 as400。

import pyodbc

connection = pyodbc.connect(
driver='{IBM DB2 ODBC DRIVER}',
system='192.168.1.100',
uid='user',
pwd='pass')
c1 = connection.cursor()

#this is meaningless sql, i just want the connection
c1.execute('select * from libname.filename')
for row in c1:
print (row)

运行这个给我这个错误

python pydata.py

Traceback (most recent call last):
File "C:\Users\tca\Desktop\ScriptingSTuff\pydata.py", line 3, in <module>
connection = pyodbc.connect(
pyodbc.OperationalError: ('08001', '[08001] [IBM][CLI Driver] SQL1013N The database alias name or database name "" could not be found. SQLSTATE=42705\r\n (-1013) (SQLDriverConnect)')

有什么想法吗?

这都是在win10下

编辑:添加这个“database='s10c38ft',”

import pyodbc

connection = pyodbc.connect(
driver='{IBM DB2 ODBC DRIVER}',
system='192.168.1.100,8471',
database='s10c38ft',
uid='user',
pwd='pass')
c1 = connection.cursor()

c1.execute('select * from libname.filename')
for row in c1:
print (row)

让它卡在闪烁的光标上,我什至无法按 CTRL+C 结束它,我必须关闭 cmd。

最佳答案

正确的驱动程序名称​​应该是 IBM i Access ODBC Driver(但请参阅下面的注释)。除此之外,您的第一个示例是正确的:

connection = pyodbc.connect(
driver='{IBM i Access ODBC Driver}',
system='192.168.1.100',
uid='user',
pwd='pass')

如果还是不行,主要有两种可能:

  1. 您使用的是旧的 ODBC 驱动程序。如果您使用旧的 iSeries Access(在这种情况下,驱动程序名称是 iSeries Access ODBC Driver)或什至更旧的 Client Access(驱动程序名称 Client Access ODBC Driver(32 位),就会发生这种情况))。如果您为驱动程序选择合适的名称,它将起作用。

  2. 您正在使用不适用于 IBM i 的 ODBC 驱动程序。 Db2 family最常用的成员是用于 LUW(Linux、Unix、Windows)的 Db2,但还有其他的。这些都不适合你。

您可以通过调用 pyodbc.drivers() 找到已安装的准确 ODBC 驱动程序名称的列表。如果您没有我上面提到的任何名称,那么您就没有合适的驱动程序。您需要的 ODBC 驱动程序是描述的 here .

关于python - 使用 pyodbc 连接到 Db2 for IBM i 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67941335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com