In SQLAlchemy, can I create an Engine from an existing ODBC connection?

前端 未结 1 489
死守一世寂寞
死守一世寂寞 2020-12-03 22:22

I am working in an environment where I am given an ODBC connection, which has been created using credentials to which I don\'t have access (for security reasons). However I

相关标签:
1条回答
  • 2020-12-03 22:55

    yes you can:

    from sqlalchemy import create_engine
    from sqlalchemy.pool import StaticPool
    eng = create_engine("mssql+pyodbc://", poolclass=StaticPool, creator=lambda: my_odbc_connection)
    

    however, if you truly have only one connection already created, as opposed to a callable that creates them, you must only use this engine in a single thread, one operation at a time. It is not threadsafe for use in a multithreaded application.

    If OTOH you can actually get at a Python function that creates new connections whenever called, this is much more appopriate:

    from sqlalchemy import create_engine
    eng = create_engine("mssql+pyodbc://", creator=my_odbc_connection_function)
    

    the above engine will pool connections normally and can be used freely as a source of connectivity.

    0 讨论(0)
提交回复
热议问题