【发布时间】:2019-02-26 06:32:49
【问题描述】:
我正在尝试将 pyodbc 连接切换到 sqlalchemy。 工作的pyodbc连接是:
import pyodbc
con = 'DRIVER={ODBC Driver 11 for SQL Server};SERVER=server.com\pro;DATABASE=DBase;Trusted_Connection=yes'
cnxn = pyodbc.connect(con)
cursor = cnxn.cursor()
query = "Select * from table"
cursor.execute(query)
我试过了:
from sqlalchemy import create_engine
dns = 'mssql+pyodbc://server.com\pro/DBase?driver=SQL+Server'
engine = create_engine(dns)
engine.execute('Select * from table').fetchall()
基于:http://docs.sqlalchemy.org/en/latest/core/engines.html
和:pandas.read_sql() is MUCH slower when using SQLAlchemy than pyodbc
(尝试使用 Trusted_Connection = Yes 建立连接)
但我收到消息:
OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]No existe el servidor SQL 服务器 o se ha denegado el acceso al mismo。 (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]ConnectionOpen (连接())。 (53)') (此错误的背景: http://sqlalche.me/e/e3q8) (对不起西班牙语,但它说 SQL Server 不存在)
我几乎可以肯定这与我不了解引擎连接的 sintax 有关。有人可以详细解释一下如何将连接从 pyodbc 转换为 sqlalchemy 吗?
提前致谢!
PD:我正在尝试实现 sqlalchemy,以便稍后在我的代码中使用 pandas.DataFrame.to_sql(engine)
【问题讨论】:
标签: python pandas sqlalchemy pyodbc pandas-to-sql