【发布时间】:2019-12-25 05:24:47
【问题描述】:
在尝试围绕现有 Teradata 数据库构建我的烧瓶应用程序时,我遇到了一个问题,我从这个现有数据库定义了我的应用程序要使用的数据库模型。我收到 sqlalchemy.exc.DatabaseError: (teradata.api.DatabaseError) (9719, '[HY000] [Teradata][ODBC Teradata Driver]Teradata DatabaseQVCI 功能已禁用。')。我使用的是 teradata 版本 16.20,并且似乎在这个最新版本中禁用了 QVCI 功能。
我已经能够通过我的烧瓶应用程序使用 sqlalchemy 和 pyodbc 成功连接到 Teradata 数据库。所以问题不在于建立初始连接。我正在努力的地方是围绕我已经能够连接到的现有数据库构建我的烧瓶应用程序。我有一些示例代码,我可以根据我期望的另一个问题找到我的“users_table”并使其可用作我的烧瓶应用程序的“用户”类。但是,当尝试让 sqlalchemy 检索“users_table”时,teradata 告诉我 QVCI 功能已被禁用。这是我能够找到的导致错误的代码:
#!/usr/bin/python
# -*- mode: python -*-
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
user = 'user_string'
pasw='password_string'
host = 'host_string'
engine = create_engine('teradata://'+ user +':' + pasw + '@'+ host + '/' + '?authentication=LDAP', convert_unicode=True, echo=False)
Base = declarative_base()
Base.metadata.reflect(engine)
from sqlalchemy.orm import relationship, bckref
class Users(Base):
__table__ = Base.metadata.tables['users_table']
if __name__ == '__main__':
from sqlalchemy.orm import scoped_session, sessionmaker, Query
db_session = scoped_session(sessionmaker(bind=engine))
for item in db_session.query(Users.id, Users.name):
print(item)
运行后,我得到 sqlalchemy.exc.DatabaseError: (teradata.api.DatabaseError) (9719, '[HY000] [Teradata][ODBC Teradata Driver]Teradata DatabaseQVCI 功能已禁用。')。提前感谢您的帮助。
【问题讨论】:
标签: python flask sqlalchemy odbc teradata