gpt4 book ai didi

python - pyodbc 到 sqlalchemy 连接

转载 作者:行者123 更新时间:2023-12-01 09:01:06 24 4
gpt4 key购买 nike

我正在尝试将 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 Server o se ha denegado el acceso al mismo. (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)') (Background on this error at: http://sqlalche.me/e/e3q8) (Sorry for the spanish but it says that the SQL Server doesn't exist)

我几乎可以肯定,这与我不了解引擎连接的语法有关。有人可以详细解释一下如何将连接从 pyodbc 转换为 sqlalchemy 吗?

提前致谢!

PD:我正在尝试实现 sqlalchemy 以便稍后在我的代码中使用 pandas.DataFrame.to_sql(engine)

最佳答案

我记得在设置 sqlalchemy 时遇到过类似的问题。我已附上我的引擎语句语法。我不记得细节,但我确实记得驱动程序的选择是一个真正的痛点。我相信我必须单独下载 ODBC 13 驱动程序,但可以确认 pd.read_sql() 和 df.to_sql 现在工作得很好。

driver = 'ODBC+DRIVER+13+for+SQL+Server'
engine_stmt = ("mssql+pyodbc://%s:%s@%s/%s?driver=%s" % (username, password, server, database, driver )
engine = sqlalchemy.create_engine(engine_stmt)

关于python - pyodbc 到 sqlalchemy 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52450659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com