Mag*_*Box 5 django-pyodbc db2-400 python-2.7 python-3.x ibm-midrange
任何人都知道如何在 python 中建立连接来连接 as400 iseries 系统并使用参数调用任何 as400 程序。
例如如何通过python连接as400来创建库。我想从 python 脚本调用“ CRTLIB LIB(TEST) ”。
这是我连接 DB2 数据库的代码。
import pyodbc
connection = pyodbc.connect(
driver='{iSeries Access ODBC Driver}',
system='ip/hostname',
uid='username',
pwd='password')
c1 = connection.cursor()
c1.execute('select * from libname.filename')
for row in c1:
print (row)
Run Code Online (Sandbox Code Playgroud)
如果您的 IBM i 设置允许,您可以在 SQL 中使用调用QCMDEXC 存储过程。CALL例如,
c1.execute("call qcmdexc('crtlib lib(test)')")
Run Code Online (Sandbox Code Playgroud)
该QCMDEXC存储过程位于 QSYS2 中(实际的程序对象是QSYS2/QCMDEXC1),其功能与 QSYS 中熟悉的同名程序非常相似,但该存储过程专门用于通过 SQL 调用。
当然,要使该示例正常工作,您的连接配置文件必须具有创建库的适当权限。
您的 IBM i 也可能未设置为允许这样做。我不知道如何启用此功能,但在我工作的地方,我们有一个分区,上面显示的示例正常完成,而另一个分区我得到了这个:
pyodbc.Error: ('HY000', '[HY000] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0901 - SQL system error. (-901) (SQLExecDirectW)')
Run Code Online (Sandbox Code Playgroud)