Python PyODBC不';当isql连接时,您是否无法连接?
PyODBC在过去为我工作过,但由于某种原因它不起作用。我在~/.odbc.ini中定义了它Python PyODBC不';当isql连接时,您是否无法连接?,python,linux,unixodbc,db2-400,pypyodbc,Python,Linux,Unixodbc,Db2 400,Pypyodbc,PyODBC在过去为我工作过,但由于某种原因它不起作用。我在~/.odbc.ini中定义了它 [as400] Description = IBM i Access ODBC Driver Driver = IBM i Acc
[as400]
Description = IBM i Access ODBC Driver
Driver = IBM i Access ODBC Driver
System = mysystem
UserID = myuser
Password = mypass
Naming = 0
DefaultLibraries = QGPL
Database =
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 1
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
MaxFieldLength = 32
BlockFetch = 1
BlockSizeKB = 128
ExtendedColInfo = 0
LibraryView = ENU
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
并且可以使用$isqlas400
正常连接
但是,通过以下程序:
import pypyodbc
conn = pypyodbc.connect("Driver={as400};System=mysystem;Uid=myuser;Pwd=mypass;")
我得到这个错误:
Traceback (most recent call last):
File "dbtest.py", line 3, in <module>
conn = pypyodbc.connect("Driver={as400};System=mysystem;Uid=myuser;Pwd=mypass;")
File "/home/wwerner/.virtualenvs/devtools/lib/python3.4/site-packages/pypyodbc.py", line 2435, in __init__
self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly)
File "/home/wwerner/.virtualenvs/devtools/lib/python3.4/site-packages/pypyodbc.py", line 2484, in connect
check_success(self, ret)
File "/home/wwerner/.virtualenvs/devtools/lib/python3.4/site-packages/pypyodbc.py", line 988, in check_success
ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi)
File "/home/wwerner/.virtualenvs/devtools/lib/python3.4/site-packages/pypyodbc.py", line 964, in ctrl_err
raise Error(state,err_text)
pypyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified')
回溯(最近一次呼叫最后一次):
文件“dbtest.py”,第3行,在
conn=pyodbc.connect(“Driver={as400};System=mysystem;Uid=myuser;Pwd=mypass;”)
文件“/home/wwerner/.virtualenvs/devtools/lib/python3.4/site packages/pypypyodbc.py”,第2435行,在__
连接(连接字符串、自动提交、ansi、超时、unicode\u结果、只读)
connect中的文件“/home/wwerner/.virtualenvs/devtools/lib/python3.4/site packages/pypyodbc.py”,第2484行
检查是否成功(自我、ret)
文件“/home/wwerner/.virtualenvs/devtools/lib/python3.4/site packages/pypypyodbc.py”,第988行,检查成功
ctrl_err(SQL_HANDLE_DBC、ODBC_obj.DBC_h、ret、ODBC_obj.ansi)
文件“/home/wwerner/.virtualenvs/devtools/lib/python3.4/site packages/pypypyodbc.py”,第964行,在ctrl\u err中
引发错误(状态、错误文本)
pyodbc.Error:('IM002','[IM002][unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序')
我试着在pyodbc源代码中寻找一些方法来镜像isql-v
功能,但是VERBOSE=True
不是。我还发现了一个bug,显然它只是用来发送第一封信,我想也许我有这个问题,但我不知道在哪里可以找到它
如何使其再次工作?您的Python脚本失败,因为“as400”是您创建的ODBCDSN的名称,因此您需要在连接字符串中使用
DSN=as400
而不是Driver={as400}
。这可能会对您有所帮助,删除我的数据集没有效果没有运气-'DSN=as400;系统…“
给出了相同的错误。