【问题标题】:Python SQLAlchemy - Error IM001 reflecting tablePython SQLAlchemy - 错误 IM001 反映表
【发布时间】:2016-11-21 05:59:09
【问题描述】:

首先,很抱歉,如果我没有写在正确的地方,或者我没有提供足够的关于这个问题的信息。

使用 SQL Alchemy 和 pyodbc。我试图反映一张桌子。 当我尝试这样做时,我会收到此消息

DBAPIError: (pyodbc.Error) ('IM001', '[IM001] [unixODBC][Driver Manager]驱动不支持这个功能(0) (SQLNumParams)') [SQL: u'SELECT [COLUMNS_1].[TABLE_SCHEMA], [COLUMNS_1].[TABLE_NAME], [COLUMNS_1].[COLUMN_NAME],[COLUMNS_1].[IS_NULLABLE], [COLUMNS_1].[DATA_TYPE],[COLUMNS_1].[ORDINAL_POSITION], [COLUMNS_1].[CHARACTER_MAXIMUM_LENGTH], [COLUMNS_1].[NUMERIC_PRECISION],[COLUMNS_1].[NUMERIC_SCALE], [COLUMNS_1].[COLUMN_DEFAULT], [COLUMNS_1].[COLLATION_NAME] \nFROM [INFORMATION_SCHEMA].[COLUMNS] 作为 [COLUMNS_1] \nWHERE [COLUMNS_1].[TABLE_NAME] = CAST(? AS NVARCHAR(max)) AND [COLUMNS_1].[TABLE_SCHEMA] = CAST(? AS NVARCHAR(max)) ORDER BY [COLUMNS_1].[ORDINAL_POSITION]'] [参数:('Order', 'dbo')]

这里是代码..

>>> from sqlalchemy.orm.session import Session
>>> from sqlalchemy.schema import MetaData
>>> import sqlalchemy as SQLA
>>> eng = SQLA.create_engine(connection_string)
>>> session = Session(eng.connect())
>>> class DB:
...     pass
... 
>>> db = DB()
>>> db.session = session
>>> db.engine = eng
>>> db.metadata = MetaData(bind=db.engine, schema='dbo')
>>> db.session.execute("select * from information_schema.columns")
<sqlalchemy.engine.result.ResultProxy object at 0x7f76eb770890>
>>> t = SQLA.Table('Order', db.metadata, autoload=True, extend_existing=True, autoload_with=db.engine)
>>> Traceback (most recent call last):
...   File "<stdin>", line 1, in <module> ... See the error above

代码在带有 unixODBC、Microsoft SQL Server Native clinet 11 for Linux 的 RHEL 7.x 上运行。 Python 2.7.11

这里是点子要求

  • 单击 (6.6) db-connection-maker (1.2.0)
  • 烧瓶 (0.11.1)
  • 很危险 (0.24)
  • Jinja2 (2.8)
  • MarkupSafe (0.23)
  • 点 (8.0.2)
  • pyaml (15.8.2)
  • pyodbc (3.0.10)
  • PyYAML (3.11)
  • 设置工具 (19.6.2)
  • simplejson (3.8.2)
  • SQLAlchemy (1.0.14)
  • Werkzeug (0.11.10)

请注意,相同的代码在 Windows 上可以正常工作。

【问题讨论】:

    标签: python sql-server sqlalchemy pyodbc


    【解决方案1】:

    我尝试使用 pymmsql,它可以正常工作。问题出在 pyodbc 上,可能 Linux 上的 ms sql odbc 驱动程序仍有一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-27
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多