isql不会连接pypyodbc吗?
问题描述:
pypyodbc在过去为我工作,但由于某种原因,它不工作。我曾在〜/ .odbc.ini的isql不会连接pypyodbc吗?
[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
这个定义,可以与$ isql as400
连接就好了。
但是:
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')
我试图寻找在某种方式pypyodbc源镜像isql -v
能力,但VERBOSE = True
是不是。我也发现了一个bug,显然它使用只发送第一个字母,并认为可能以某种方式,我有这个问题,但我无法弄清楚我在哪里找到。
我怎样才能再次得到这个工作?
答
你的Python脚本失败,因为“AS400”是您创建的ODBC DSN的名称,所以你需要在连接字符串中使用DSN=as400
而不是Driver={as400}
。
+0
没有运气 - ''DSN = as400;系统.. ''给出了同样的错误。 – 2014-11-06 01:24:44
也许这[视频](https://www.youtube.com/watch?v=_5QEEQhpRbQ)可能会帮助您 – 2014-10-01 02:56:26
可悲的是,删除我的数据集没有任何影响 – 2014-10-01 03:04:14