【问题标题】:Sybase IQ connection in PythonPython 中的 Sybase IQ 连接
【发布时间】:2019-05-12 14:21:54
【问题描述】:

我花了几天时间试图确定如何通过 Python 3.6 连接到 Sybase IQ 数据库。我试过pyodbcpymssql,但无济于事。以下是我一直在研究的两个代码 sn-ps,无论我尝试什么,它们似乎都不起作用。

pyodbc:

conn = pyodbc.connect(driver='{SQL Server Native Client 11.0}',
                          server=server,
                          database=database,
                          port=port,
                          uid=user,
                          pwd=pwd)

pymssql:

conn = pymssql.connect(server=server,
                        port=port,
                        user=user,
                        password=pwd,
                        database=database)

我还了解到FreeTds 可能是连接到 Sybase IQ 数据库的解决方案;我以为它是作为pymssql 数据库的一部分安装的,但我似乎不知道如何利用它。任何帮助将不胜感激!

编辑:我知道sqlanydb 存在;然而,这个包让我降级到 Python 2.7。我的筹码是 3.6,我不想离开这个。

【问题讨论】:

  • MSSQL 客户端驱动程序或 ODBC 驱动程序不适用于 Sybase 数据库,TDS 数据包结构完全不同。有关更多信息,请参阅此链接infocenter.sybase.com/help/index.jsp?topic=/…
  • 我已经看到这个sqlanydb 包出现了几次......它真的有效吗?我尝试在 Anaconda 上安装它,但它破坏了我的环境。我还应该注意到,Python 对 Windows 的支持中的链接已经失效。

标签: python database python-3.x sybase sap-iq


【解决方案1】:

一段时间后,我能够解决此问题(在 Windows 上)。首先,安装 SQL Anywhere 17 驱动程序。安装后,在 Windows ODBC 数据源窗口中,使用 SQL Anywhere 17 和您的 Sybase IQ 凭据设置连接。配置成功并测试成功后,您可以使用以下代码 sn-p 进行连接:

from sqlalchemy import create_engine

sybase_connection_string = "sqlalchemy_sqlany://{user}:{pwd}@{host}:{port}/{db}".\
        format(user=user, pwd=pwd, host=host, port=port, db=database)
engine = create_engine(sybase_connection_string)
return engine.connect()

我相信你需要通过 pip 安装 sqlalchemy_sqlany 模块,以及 sqlalchemy

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 2018-09-08
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多