栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

连接到IBM AS400服务器以进行数据库操作挂起

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

连接到IBM AS400服务器以进行数据库操作挂起

该自述文件

ibm_db_sa
中“支持的数据库”一节中列出仅DB2用于Linux / UNIX /
Windows的。因此,它很可能不适用于DB2 for i,至少不是开箱即用。

既然您已经说过具有Windows的IBM System i
Access,我强烈建议您仅使用它附带的一种驱动程序(如@Charles所述,是ODBC,OLEDB或ADO.NET)。

就个人而言,我总是将ODBC与

pyodbc
或一起使用
pypyodbc
。两种都可以。一个简单的例子:

import pyodbcconnection = pyodbc.connect(    driver='{iSeries Access ODBC Driver}',    system='11.22.33.44',    uid='username',    pwd='password')c1 = connection.cursor()c1.execute('select * from qsys2.sysschemas')for row in c1:    print row

现在,SQLAlchemy的连接方法之一是

pyodbc
,所以我认为,如果您可以
pyodbc
直接使用建立连接,则可以通过某种方式配置SQLAlchemy来执行相同的操作。但是我自己不是SQLAlchemy用户,因此我没有相应的示例代码。

更新

我设法让SQLAlchemy连接到我们的IBM i并执行直接的SQL查询。换句话说,使其具有与直接使用PyODBC大致相同的功能。
我还没有测试任何其他SQLAlchemy功能。 我在Windows 7计算机上设置连接的操作:

  • ibm_db_sa
    作为SQLAlchemy方言安装
    您也许可以使用
    pip
    此方法,但是我以低技术的方式做到了:

    1. ibm_db_sa
      从PyPI下载。
      撰写本文时,最新版本为0.3.2,于2014-10-20上传。可以想象以后的版本将以不同的方式被修复或破坏(因此,将来,我将要描述的修改可能是不必要的,或者可能行不通)。

    2. 解压缩档案(

      ibm_db_sa-0.3.2.tar.gz
      ),然后将随附的
      ibm_db_sa
      目录复制到该
      sqlalchemydialects
      目录中。

    3. 修改

      sqlalchemydialectsibm_db_sapyodbc.py

    4. 添加

      initialize()
      方法的
      AS400Dialect_pyodbc

      的这点是覆盖同名的方法
      DB2Dialect
      ,它
      AS400Dialect_pyodbc
      从继承。问题是
      DB2Dialect.initialize()
      尝试设置属性
      dbms_ver
      dbms_name
      ,当使用PyODBC连接到IBM
      i时,这两个属性都不可用或不相关(据我所知)。

    5. 添加模块级名称

      dialect
      并将其设置为
      AS400Dialect_pyodbc

上述修改的代码应该放在文件的末尾,如下所示:

    def initialize(self, connection):        super(DB2Dialect, self).initialize(connection)dialect = AS400Dialect_pyodbc

注意缩进! 请记住,该

initialize()
方法必须属于
AS400Dialect_pyodbc
该类,并且
dialect
需要对模块是全局的。

最后,您需要为引擎创建者提供正确的URL:

'ibm_db_sa + pyodbc:// username:password @ host / * local'

(显然,替代有效值

username
password
host
)。

而已。此时,您应该能够创建引擎,连接到i并通过SQLAlchemy执行纯SQL。我认为许多ORM东西也应该在这一点上起作用,但我尚未对此进行验证。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号