Microsoft SQL Server🔗
Supported drivers:
dbapi | default | driver | connection class |
---|---|---|---|
pymssql | mssql+pymssql |
pymssql._pymssql.Connection |
pymssql🔗
pymssql
is the default dbapi driver for Microsoft SQL Server in pydapper.
Installation🔗
pip install pydapper[pymssql]
poetry add pydapper -E pymssql
DSN format🔗
dsn = f"mssql+pymssql://{user}:{password}@{host}:{port}/{dbname}"
dsn = "mssql+pymssql://myuser:mypassword:1433@localhost/mydb"
dsn = "mssql://myuser:mypassword:1433@localhost/mydb"
Example - connect
🔗
Please see the pymssql docs for a full description of the context manager behavior.
import pydapper
with pydapper.connect("mssql://sa:pydapper!PYDAPPER@localhost:1434/pydapper") as commands:
print(type(commands))
# <class 'pydapper.mssql.pymssql.PymssqlCommands'>
print(type(commands.connection))
# <class 'pymssql._pymssql.Connection'>
with commands.cursor() as raw_cursor:
print(type(raw_cursor))
# <class 'pymssql._pymssql.Cursor'>
Example - using
🔗
Use pydapper with a custom connection pool.
from collections import deque
import pymssql
import pydapper
class SimplePool:
"""pymssql does not provide a pool interface, this is a simple example that should never be used in production"""
def __init__(self, **connect_kwargs):
self._connect_kwargs = connect_kwargs
self._connections = deque()
def getconn(self):
if len(self._connections) == 0:
return pymssql.connect(**self._connect_kwargs)
return self._connections.pop()
def putconn(self, conn):
self._connections.append(conn)
def __del__(self):
for conn in self._connections:
conn.close()
my_pool = SimplePool(server="localhost", port=1434, user="sa", password="pydapper!PYDAPPER", database="pydapper")
commands = pydapper.using(my_pool.getconn())
print(type(commands))
# <class 'pydapper.mssql.pymssql.PymssqlCommands'>
print(type(commands.connection))
# <class 'pymssql._pymssql.Connection'>
my_pool.putconn(commands.connection)