SQL Server连接-适用于pyodbc,但不适用于SQLAlchemy

时间:2018-07-19 02:00:26

标签: python sql-server pandas sqlalchemy pyodbc

这是一个相当普遍的问题,但是即使使用SO like here上的答案,但我仍然无法连接。

当我建立与null的连接时,我可以连接以下内容:

pyodbc

,并且有效。

但是在cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=ip,port;DATABASE=db;UID=user;PWD=pass') cursor = cnxn.cursor() cursor.execute("some select query") for row in cursor.fetchall(): print(row) 中执行.read_sql()时,我需要与pandas连接。

我尝试使用托管连接和直通pyodbc连接,如下所示:

sqlalchemy

我尝试使用quoted = urllib.parse.quote_plus('DRIVER={SQL Server Native Client 11.0};Server=ip;Database=db;UID=user;PWD=pass;Port=port;') engine = sqlalchemy.create_engine('mssql+pyodbc:///?odbc_connect={}'.format(quoted)) engine.connect() 格式和上面单独的SERVER=ip,port参数,但还是没有运气。

我得到的错误是Port=port

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我假设您想创建一个 DataFrame ,所以当您拥有cnxn时,可以将其传递给 Pandas read_sql_query函数。 示例:

cnxn = pyodbc.connect('your connection string')
query = 'some query'

df = pandas.read_sql_query(query, conn)