SqlAlchemy equivalent of pyodbc connect string using FreeTDS

后端 未结 5 1570
借酒劲吻你
借酒劲吻你 2020-12-08 01:37

The following works:

import pyodbc
pyodbc.connect(\'DRIVER={FreeTDS};Server=my.db.server;Database=mydb;UID=myuser;PWD=mypwd;TDS_Version=8.0;Port=1433;\')
         


        
5条回答
  •  执念已碎
    2020-12-08 01:48

    Internally "my.db.server:1433" is passed as part of a connection string like SERVER=my.db.server:1433;.

    Unfortunately unixODBC/FreeTDS won't accept a port in the SERVER bit. Instead it wants SERVER=my.db.server;PORT=1433;

    To use the sqlalchemy syntax for a connection string, you must specify the port as a parameter.

    sqlalchemy.create_engine("mssql://myuser:mypwd@my.db.server:1433/mydb?driver=FreeTDS& odbc_options='TDS_Version=8.0'").connect()
    

    becomes:

    sqlalchemy.create_engine("mssql://myuser:mypwd@my.db.server/mydb?driver=FreeTDS&port=1433& odbc_options='TDS_Version=8.0'").connect()
    

提交回复
热议问题