sql - 无法使用 pyodbc 将 Sqlalchemy 连接到 SQL Server 2000

标签 sql sql-server sqlalchemy pyodbc sql-server-2000

我关注了这个website通过安装

Install:
sudo apt-get install freetds-dev freetds-bin unixodbc-dev tdsodbc
pip install pyodbc sqlalchemy
In /etc/odbcinst.ini:

[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

安装后,我尝试了这段代码,它起作用了,它打印了 table2 中的所有记录

import pyodbc

conn = pyodbc.connect('DRIVER=FreeTDS;SERVER=<IP_OR_HOSTNAME>;PORT=1433;DATABASE=<DATABASE_NAME>;UID=<USERNAME>;PWD=<PASSWORD>;TDS_Version=8.0;')
cursor = conn.cursor()
for row in cursor.execute('SELECT * FROM Table2'):
    print (row)

但是,我想将 SQLAlchemy 与 pyodbc 一起使用,但它不起作用

import urllib

from sqlalchemy import create_engine


engine = create_engine('mssql+pyodbc:///?odbc_connect=' +
    urllib.parse.quote_plus('DRIVER=FreeTDS;SERVER=<IP_OR_HOSTNAME>;PORT=1433;DATABASE=<DATABASE_NAME>;UID=<USERNAME>;PWD=<PASSWORD>;TDS_Version=8.0;')
)
for row in engine.execute('SELECT * FROM Table2'):
    print (row)

ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [FreeTDS][SQL Server]'schema_name' is not a recognized function name. (195) (SQLExecDirectW)") [SQL: SELECT schema_name()] (Background on this error at: https://sqlalche.me/e/14/f405)

如何连接它?

最佳答案

SQLAlchemy 1.4 不支持 SQL Server 2000。使用 pip install sqlalchemy==1.3.24

关于sql - 无法使用 pyodbc 将 Sqlalchemy 连接到 SQL Server 2000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71584258/

相关文章:

asp.net - SQL 超时已过期 2 秒查询

sql - 每组最高,有计数

sql-server - 如何使用 RoundhouseE 以正确的顺序运行依赖于 sp 的创建索引脚本

sql - 如何优化 SQL 查询?

python - Sqlalchemy 中的复合键

php - sql - 查找哪个文件夹未使用

mysql - 具有复合连接条件的 SQL LEFT JOIN 如何工作

sql - SQL 中没有显示列名

python - 在 Pyramid 和 SQLAlchemy 中使用 scoped_session.add() 更新数据库

python - Flask-SQLAlchemy如何在MySQL(InnoDB)中使用级联来约束外键?