o
    Šågå  ã                   @  s^   d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd	„ d	eƒZG d
d„ deeƒZ	e	Z
dS )aª  
.. dialect:: mssql+aioodbc
    :name: aioodbc
    :dbapi: aioodbc
    :connectstring: mssql+aioodbc://<username>:<password>@<dsnname>
    :url: https://pypi.org/project/aioodbc/


Support for the SQL Server database in asyncio style, using the aioodbc
driver which itself is a thread-wrapper around pyodbc.

.. versionadded:: 2.0.23  Added the mssql+aioodbc dialect which builds
   on top of the pyodbc and general aio* dialect architecture.

Using a special asyncio mediation layer, the aioodbc dialect is usable
as the backend for the :ref:`SQLAlchemy asyncio <asyncio_toplevel>`
extension package.

Most behaviors and caveats for this driver are the same as that of the
pyodbc dialect used on SQL Server; see :ref:`mssql_pyodbc` for general
background.

This dialect should normally be used only with the
:func:`_asyncio.create_async_engine` engine creation function; connection
styles are otherwise equivalent to those documented in the pyodbc section::

    from sqlalchemy.ext.asyncio import create_async_engine

    engine = create_async_engine(
        "mssql+aioodbc://scott:tiger@mssql2017:1433/test?"
        "driver=ODBC+Driver+18+for+SQL+Server&TrustServerCertificate=yes"
    )

é    )Úannotationsé   )ÚMSDialect_pyodbc)ÚMSExecutionContext_pyodbcé   )ÚaiodbcConnectorc                   @  s   e Zd Zdd„ ZdS )ÚMSExecutionContext_aioodbcc                 C  s   | j jdd�S )NT)Úserver_side)Ú_dbapi_connectionÚcursor)Úself© r   ú]/var/www/html/flaskapp/venv/lib/python3.10/site-packages/sqlalchemy/dialects/mssql/aioodbc.pyÚcreate_server_side_cursor3   s   z4MSExecutionContext_aioodbc.create_server_side_cursorN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   2   s    r   c                   @  s   e Zd ZdZdZeZdS )ÚMSDialectAsync_aioodbcÚaioodbcTN)r   r   r   ÚdriverÚsupports_statement_cacher   Úexecution_ctx_clsr   r   r   r   r   7   s    r   N)Ú__doc__Ú
__future__r   Úpyodbcr   r   Úconnectors.aioodbcr   r   r   Údialectr   r   r   r   Ú<module>   s   #