【问题标题】:sqlalchemy: '<' not supported between instances of 'str' and 'int' for table schema attribute (pyodbc)sqlalchemy:表模式属性(pyodbc)的“str”和“int”实例之间不支持“<”
【发布时间】:2018-04-19 15:39:33
【问题描述】:

我正在尝试从 MSSQL 服务器检索表(使用 DSN)

我有这个代码:

engine=sqlalchemy.create_engine('mssql+pyodbc://MATRIX')
md=sqlalchemy.MetaData()
tsk = sqlalchemy.Table('MATRIX_SMSIMA', md, autoload=True, autoload_with=engine, schema='USER')

最初,我在没有 schema 属性的情况下尝试了它,并收到一条 pyodbc 不支持默认模式的错误消息。

添加架构属性时,我收到一条似乎源于 Table 函数内部的错误消息:

in _compile(element, compiler, **kw)
39 def _compile(element, compiler, **kw):
 40     from . import base
---> 41     if compiler.dialect.server_version_info < base.MS_2005_VERSION:
 42         return compiler.process(element.bindvalue, **kw)
 43     else:

TypeError: '<' not supported between instances of 'str' and 'int'

有没有办法解决这个问题?

【问题讨论】:

  • 嗯,这看起来可能是 SQLAlchemy 中的一个错误。你可以试试猴子修补它说if int(compiler.dialect.server_version_info) &lt; int(base.MS_2005_VERSION):吗?我还没有测试过,但如果可行,我们可以发出一个带有 MSSQL 方言修复程序的拉取请求。我以前为 MSSQL 方言做出过贡献,如果它有效,我很乐意发布补丁。

标签: sql-server python-3.x sqlalchemy pyodbc


【解决方案1】:

好的,我刚刚发现我正在连接的应用程序正在使用 InterSystems Cache SQL 而不是 MS SQL,所以这是一个误报

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 2021-08-10
    • 2019-11-18
    • 1970-01-01
    • 2020-03-12
    • 2019-09-10
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多