无法使用SQLAlchemy连接到SQL Server

4
我正在尝试使用Python将Pandas数据框中的内容上传到SQL Server表,但是我无法成功地使用Sqlalchemy创建连接。 我知道我首先需要使用create_engine()创建一个引擎对象,然后使用engine.connect()创建一个连接对象,但是我在create_engine()中输入的任何字符串似乎都不起作用。 我已经尝试了以下内容:
engine = create_engine('mssql+pyodbc://myServer/myDB')
conn = engine.connect()

并且:

engine = create_engine('mssql+pyodbc://Server=myServer;Database=myDB;')
conn = engine.connect()

并且:

engine = create_engine('mssql+pyodbc://Driver={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()

但是所有的尝试都导致以下错误:

InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

我还尝试了:

engine = create_engine('mssql+pyodbc://Driver={SQL Server Native Client 11.0};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()

这导致以下错误:

DBAPIError: (pyodbc.Error) ('IM010', '[IM010] [Microsoft][ODBC 驱动程序 管理器] 数据源名称过长 (0) (SQLDriverConnect)')

虽然我可以通过以下方式成功连接pyodbc:
conn = pyodbc.connect('DRIVER={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')

我似乎无法使这项技术在 sqlalchemy 中工作。

如果有任何帮助,将不胜感激。

2个回答

3
解决方案:
engine = create_engine('mssql+pyodbc://ERRSTSDBP2/ActPri?driver=SQL+Server+Native+Client+11.0')

感谢norbeq帮我完成了大部分工作!

1
你可以尝试像这样建立连接: engine = create_engine('mssql+pyodbc://user:password@host:port/myDB') conn = engine.connect()

我没有密码,我使用Windows身份验证进行连接。'host:port' 是什么意思?我尝试了以下内容,但没有成功:engine = create_engine('mssql+pyodbc://login@myServer/myDB') conn = engine.connect() - Lurch
好的,那么引擎应该是:engine = create_engine('mssql+pyodbc://@myServer/myDB?trusted_connection=yes&driver=SQLServer+Native+Client+11.0') - norbeq
仍然出现以下错误:InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 数据源名称未找到且未指定默认驱动程序 (0) (SQLDriverConnect)') - Lurch
1
我明白了!解决方案:engine = create_engine('mssql+pyodbc://myServer/myDB?driver=SQL+Server+Native+Client+11.0') - Lurch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接