2016-07-18 7 views
0

zunächst, tut mir leid, wenn ich nicht an der richtigen Stelle schreiben oder ich gebe nicht genügend Informationen über das Problem.Python SQLAlchemy - Fehler IM001 reflektierende Tabelle

Verwenden von SQL Alchemy, mit Pyodbc. Ich versuche, einen Tisch zu reflektieren. Wenn ich versuche, das zu tun, bekomme ich diese Nachricht

DBAPIError: (pyodbc.Error) ('IM001', '[IM001] [unixODBC][Driver Manager]Driver does not support this function (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] AS [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]'] [parameters: ('Order', 'dbo')]

Hier ist der Code ..

>>> 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 

Der Code wird mit unixODBC, Microsoft SQL Server Native clinet auf einem RHEL 7.x läuft 11 für Linux. Python 2.7.11

Hier sind die pip Anforderungen

  • Klick (6.6) db-Anschluss-Hersteller (1.2.0)
  • Flask (0.11.1)
  • itsdangerous (0,24)
  • Jinja2 (2,8)
  • MarkupSafe (0,23)
  • pip (8.0.2)
  • pyaml (15.8.2)
  • Pyodbc (3.0.10)
  • PyYAML (3,11)
  • Setuptools (19.6.2)
  • simplejson (3.8.2)
  • SQLAlchemy (1.0.14)
  • Werkzeug (0,11. 10)

Beachten Sie, dass der gleiche Code ohne Probleme auf Windows funktioniert.

Antwort

0

Ich versuche es mit pymmsql und es funktioniert ohne Probleme. Das Problem war auf pyodbc, vielleicht noch einige Probleme mit ms sql odbc Treiber auf Linux.

Verwandte Themen