代码之家  ›  专栏  ›  技术社区  ›  swifty

SQL Server连接-在pyodbc中工作,但不在sqlAlchemy中工作

  •  0
  • swifty  · 技术社区  · 6 年前

    这是一个很常见的问题,但即使使用答案,也是如此 like here 但我还是无法连接。

    当我设置连接到 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 我需要联系 sqlalchemy .

    我尝试了两种托管连接和通过pyodbc连接,如下所示:

    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 参数如上所述,但仍然没有运气。

    我得到的错误是 Login failed for user 'user'. (18456)

    任何帮助都非常感谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   RobJan    6 年前

    我假设你想创建一个 数据帧 所以当你有一个 cnxn 你可以把它传给 熊猫 read_sql_query 功能。 例子:

    cnxn = pyodbc.connect('your connection string')
    query = 'some query'
    
    df = pandas.read_sql_query(query, conn)