python - Python 中的 Sybase IQ 连接

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

我花了几天时间尝试确定如何通过 Python 3.6 连接到 Sybase IQ 数据库。我尝试过 pyodbc 和 pymssql,但没有成功。下面是我一直在研究的两个代码片段,无论我如何尝试,它们似乎都不起作用。

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,我不想放弃这个。

最佳答案

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

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

关于python - Python 中的 Sybase IQ 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53726766/

相关文章:

python - 字符串连接 : Putting large chuck of text in Python code

sql - 在 MySQL/SQLite 数据库中按路径选择页面

Python语音识别: 'module' object has no attribute 'microphone'

python - 网页抓取成所需的 python 格式

python - 如何跨多个服务器/ worker 管理 websockets

python - Django:为什么 'Class' 对象不可迭代

mysql - SQL AVG(平均)返回大量数字

database - Oracle:删除子表时删除父表(双向级联删除)

python - 将包含 Pandas DataFrame 列表列表的单元格解包到新 DataFrame 的单独行和列中

python-3.x - 置换算法的Big-O分析