Wat is er nieuw in mssql-python

Elke release van de mssql-python-driver introduceert nieuwe functies, prestatieverbeteringen en bugfixes. De volgende secties beschrijven elke versie.

mssql-python 1.12.0

Releasedatum: juli 2026

Enhancements

Losstaand mssql-python-odbc aanvullend pakket

De ODBC-driverbinaries die mssql-python tijdens uitvoering nodig heeft, worden nu ook als een apart, alleen-data begeleidend pakket gepubliceerd: mssql-python-odbc (importnaam mssql_python_odbc, momenteel vastgezet op versie 18.6.2). Het pakket mssql-python geeft mssql-python-odbc==18.6.2 op in install_requires, dus pip install mssql-python installeert het begeleidende pakket transparant mee. Er zijn geen codewijzigingen vereist.

De native loader geeft de voorkeur aan het externe mssql_python_odbc pakket wanneer het aanwezig is, en valt terug op de ODBC-binaries die nog steeds in het mssql-python wiel zitten als dat niet zo is. De fallback is veilig met de Python Global Interpreter Lock (GIL) en werkt op musl-gebaseerde Linux-distributies zoals Alpine.

Deze splitsing stelt je in staat de driver-binaries onafhankelijk van de Python-code vast te pen of bij te werken, geeft redistributeurs een kleiner mssql-python wiel in de loop van de tijd en voorkomt problemen met dubbel eigendom door gebundelde ODBC-bestanden.

Important

Deze split wordt geleverd zonder een niet-compatibele wijziging. In een toekomstige grote release (v2.0.0) kan de gebundelde libs/ boom worden verwijderd, in welk geval mssql-python-odbc het een harde runtime-vereiste wordt.

Fouten opgelost

cursor.bulkcopy() gebruikt nu de verbindingstimeout van de ouderverbinding

De bulkkopie-operatie opent een aparte verbinding via de mssql_py_core native extensie. Voorheen gebruikte deze operatie altijd een hardgecodeerde verbindingstimeout van 15 seconden zonder mogelijkheid om deze vanuit Python te overschrijven. Als je een verbindingstimeout instelt op de ouderverbinding (connect(..., timeout=<seconds>)), bulkcopy() stuurt die waarde nu door naar de interne verbinding. Door het instellen timeout=0 behoudt het geen override-gedrag en blijft de interne standaard van 15 seconden behouden. De timeout van de cursor op het moment van het bulkcopy() gesprek wordt gebruikt voor de operatie, zodat latere wijzigingen aan de ouderverbinding geen invloed hebben op een bulkkopie tijdens de vlucht.

Het volgende voorbeeld gebruikt de Production.Culture opzoektabel uit de AdventureWorks-voorbeelddatabase . Pas de verbindingsreeks en databasenaam voor je omgeving aan:

import mssql_python
from datetime import datetime

# The 60-second timeout applies to both the initial connection and
# the internal connection that bulkcopy() opens.
conn = mssql_python.connect(
    "Server=<server>;"
    "Database=AdventureWorks2022;"
    "Encrypt=yes",
    timeout=60,
)
conn.autocommit = True
cursor = conn.cursor()

# Bulk-copy two rows into Production.Culture (CultureID, Name, ModifiedDate).
now = datetime.now()
rows = [
    ("xx", "Demo culture 1", now),
    ("yy", "Demo culture 2", now),
]
result = cursor.bulkcopy("Production.Culture", rows)
print(f"Copied {result['rows_copied']} rows")

# Remove the demo rows so the sample is re-runnable.
cursor.execute("DELETE FROM Production.Culture WHERE CultureID IN ('xx','yy')")

cursor.bulkcopy() ondersteunt CLR-door de gebruiker gedefinieerde typekolommen

Voorheen mislukte cursor.bulkcopy() met Protocol Error: Unsupported TDS type for bulk copy: 0xF0 voor elke bestemmingskolom die gebruikmaakte van een door de gebruiker gedefinieerd Common Language Runtime-type (CLR), met inbegrip van de ingebouwde typen geography, geometry en hierarchyid, en van elke aangepaste, in een assembly geregistreerde CLR-UDT. Het native mssql_py_core communicatiepad had geen verwerker voor het UDT-typetoken (0xF0) en resulteerde in een fout bij het schrijven van kolommetadata, voordat er ook maar één rij was verzonden. CLR UDT-kolommen worden nu tijdens overdracht gekoppeld aan varbinary(max), en de meegeleverde bytes worden doorgegeven als de payload van de UDT in IBinarySerialize, overeenkomstig de manier waarop pyodbc en python-tds UDT-kolommen laden. SQL Server materialiseert de UDT bij het invoegen. Geleverd via de mssql_py_core verhoging van 0.1.6 naar 0.1.7.

Het volgende voorbeeld archiveert de organigramkolom van HumanResources.Employee (een hierarchyid-kolom, een van de ingebouwde CLR UDT's van SQL Server) naar een nieuwe tabel. In een echte workflow kunnen de UDT-bytes afkomstig zijn van een andere SQL Server-instantie, een geserialiseerd bestand of de uitvoer van uw CLR-type IBinarySerialize.Write(); dit voorbeeld leest deze via CAST(... AS varbinary(max)) uit een bestaande kolom, zodat het voorbeeld op zichzelf staat. De bulkcopy bevat de rij waarbij OrganizationNode NULL is:

import mssql_python

conn = mssql_python.connect(
    "Server=<server>;"
    "Database=AdventureWorks2022;"
    "Encrypt=yes",
)
conn.autocommit = True  # bulkcopy uses a separate connection; the destination must be visible
cursor = conn.cursor()

cursor.execute(
    "IF OBJECT_ID('dbo.EmployeeOrgArchive','U') IS NOT NULL "
    "DROP TABLE dbo.EmployeeOrgArchive;"
    "CREATE TABLE dbo.EmployeeOrgArchive (BusinessEntityID int, OrganizationNode hierarchyid);"
)

# Casting a hierarchyid column to varbinary(max) yields the UDT's
# serialized IBinarySerialize payload.
cursor.execute(
    "SELECT BusinessEntityID, CAST(OrganizationNode AS varbinary(max)) "
    "FROM HumanResources.Employee;"
)
rows = cursor.fetchall()

# Stream the (id, bytes) tuples into the destination's hierarchyid column.
result = cursor.bulkcopy("dbo.EmployeeOrgArchive", rows)
print(f"Copied {result['rows_copied']} rows")

cursor.execute("DROP TABLE dbo.EmployeeOrgArchive")

Voor een aangepaste, in assembly geregistreerde CLR UDT, gebruik je het type in de doeltabel en geef je de bytes op die worden geproduceerd door de IBinarySerialize.Write()-methode van het type.

mssql-python 1.11.0

Releasedatum: juli 2026

Enhancements

Verbeterde contextmanager-semantiek

with connection: bevestigt transacties nu correct bij een normale afsluiting en draait ze terug als er een uitzondering optreedt, waardoor het gedrag meer in lijn is met Python en voorspelbaarder wordt.

import mssql_python

# On clean exit, transaction commits
with mssql_python.connect(connection_string) as conn:
    cursor = conn.cursor()
    cursor.execute("INSERT INTO MyTable (Name) VALUES ('Alice')")
    # Automatically committed on exit

# On exception, transaction rolls back
try:
    with mssql_python.connect(connection_string) as conn:
        cursor = conn.cursor()
        cursor.execute("INSERT INTO MyTable (Name) VALUES ('Bob')")
        raise ValueError("Oops!")
except ValueError:
    pass
# Changes rolled back on exit

Fouten opgelost

  • Een GIL-deadlock in het ODBC-afbouwpad (conn.close() en cursor.close()) en in SQLDescribeParam voor parameters met de waarde None in SSH-tunnel- en in-process-forwarderconfiguraties opgelost.
  • Vaste BINARY en VARBINARY NULL-parameters in tijdelijke tabellen en tabelvariabelen. Wanneer automatische typeresolutie faalt, geeft de driver nu een Python-waarschuwing met expliciete cursor.setinputsizes() richtlijnen.
  • Probleem opgelost waarbij import mssql_python faalde op Apple Silicon bij een schone installatie (regressie in 1.8.0). De gebundelde ODBC dylib-afhankelijkheden zijn nu herschreven voor zowel arm64 en x86_64 architecturen.
  • Er is een GIL-deadlock in de Rust-kern opgelost waardoor bulkkopieën vastliepen bij authenticatie met Authentication=ActiveDirectoryServicePrincipal.

mssql-python 1.10.0

Releasedatum: juni 2026

Enhancements

ActiveDirectoryServicePrincipal-ondersteuning voor bulkkopieën

cursor.bulkcopy() ondersteunt nu Authentication=ActiveDirectoryServicePrincipal, waardoor bulkinserts mogelijk zijn door gebruik te maken van Service Principal-credentials.

import mssql_python

conn = mssql_python.connect(
    "Server=<server>.database.windows.net;"
    "Database=<database>;"
    "Authentication=ActiveDirectoryServicePrincipal;"
    "UID=<application-client-id>;"
    "PWD=<client-secret>;"
    "Encrypt=yes"
)
cursor = conn.cursor()
cursor.execute("CREATE TABLE ##SpDemo (ID INT, Value FLOAT)")
conn.commit()

result = cursor.bulkcopy("##SpDemo", [(1, 1.5), (2, 2.5)])
print(f"Copied {result['rows_copied']} rows")

Fouten opgelost

  • Problemen met niet-ASCII-gegevens in het Arrow-ophaalpad voor VARCHAR en CHAR zijn opgelost.
  • Vaste verbindingstime-outs tijdens bulkbelasting.

mssql-python 1.9.0

Releasedatum: juni 2026

Enhancements

Rijobjecten bulkkopiëren

cursor.bulkcopy() accepteert nu direct gehaalde Row objecten in plaats van handmatige tuple-conversie te vereisen.

import mssql_python

conn = mssql_python.connect(connection_string)
cursor = conn.cursor()

# Fetch rows from source table
cursor.execute("SELECT ProductID, Name, ListPrice FROM Production.Product")
rows = cursor.fetchall()

# Pass fetched Row objects directly to bulkcopy
cursor.execute("CREATE TABLE ##RowBulkDemo (ProductID INT, Name NVARCHAR(50), ListPrice MONEY)")
conn.commit()
result = cursor.bulkcopy("##RowBulkDemo", rows)
print(f"Copied {result['rows_copied']} rows")

Fouten opgelost

  • Vaste wielverpakking, dus simdutf altijd statisch gekoppeld.
  • Grote inserts opgelost in DECIMAL.
  • Onjuiste typefallback voor NULL-parameters opgelost.
  • Vaste uitzonderingen voor pickle en unpickle retourritten.
  • Probleem opgelost in nextset(), zodat PRINT-berichten tussen resultaatsets heen behouden blijven.
  • Probleem met de afhandeling van Row opgelost in het fallback-pad voor executemany() data-at-execution.
  • Vaste typecontrole van de fetch-methode voor statische analysetools.

mssql-python 1.8.0

Releasedatum: mei 2026

Enhancements

ActiveDirectoryMSI-ondersteuning voor bulkkopieën

cursor.bulkcopy() ondersteunt nu Authentication=ActiveDirectoryMSI voor door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten.

import mssql_python

# System-assigned managed identity
conn = mssql_python.connect(
    "Server=<server>.database.windows.net;"
    "Database=<database>;"
    "Authentication=ActiveDirectoryMSI;"
    "Encrypt=yes"
)
cursor = conn.cursor()
cursor.execute("CREATE TABLE ##MsiDemo (ID INT, Name NVARCHAR(50))")
conn.commit()

result = cursor.bulkcopy("##MsiDemo", [(1, "Alice"), (2, "Bob")])
print(f"Copied {result['rows_copied']} rows")

Rijindexering met tekenreekssleutel

Je kunt nu rijwaarden bijvoorbeeld op kolomnaam row["col"]benaderen , naast positionele indexering en attribuuttoegang.

import mssql_python

conn = mssql_python.connect(connection_string)
cursor = conn.cursor()

cursor.execute("SELECT ProductID, Name, ListPrice FROM Production.Product WHERE ProductID = 1")
row = cursor.fetchone()

# Access by column name (new in 1.8.0)
print(row["ProductID"]) # Access by key
print(row["Name"])

# Still supports positional indexing
print(row[0])           # Positional access

# And attribute access
print(row.Name)         # Attribute access

Upgrade van de meegeleverde ODBC-driver

De meegeleverde Microsoft ODBC-driver voor SQL Server werd bijgewerkt naar 18.6.2.1.

Fouten opgelost

  • Problemen met de levensduur van het uitgestelde verbindingsattribuut in tokengebaseerde authenticatie opgelost.
  • Herhaald parseren van verbindingsreeksen in het authenticatiepad is opgelost.
  • Vaste executemany() type annotaties voor sequentie-invoer.

mssql-python 1.7.1

Releasedatum: mei 2026

Enhancements

Uitgebreide wieldekking en prestatieverbeteringen

Deze release voegt RHEL 8-compatibele wielen toe, herstelt macOS Python 3.10 universal2 wielen, verbetert de UTF-16 handling via simdutf, en optimaliseert het execute() hot path.

Prestatie-impact: De batchuitvoeringsdoorvoer verbetert met ~15% op typische workloads door hot path-optimalisaties in de execute() methode.

Fouten opgelost

  • Fouten bij het aanmelden opgelost, zodat deze mssql_python DB-API-uitzonderingen genereren in plaats van RuntimeError.
  • Verlengde GIL-release over het blokkeren van ODBC-uitvoering, fetch, transactie en verbindingsattribuutaanroepen.
  • Problemen met executemany() opgelost wanneer decimale waarden van teken veranderen.
  • Inconsistente decodering van CP1252 VARCHAR op verschillende platforms opgelost.
  • cursor.bulkcopy()-fouten voor lege tekenreeksen in kolommen NVARCHAR(MAX) en VARCHAR(MAX) opgelost.

Opmerking

Versie 1.7.0 werd ingetrokken vanwege publicatieproblemen. Gebruik versie 1.7.1 of later.

mssql-python 1.6.0

Releasedatum: april 2026

Enhancements

Op parser gebaseerde opschoning van verbindingsreeksen

Deze verbetering zorgt voor correcte parsing van speciale tekens in wachtwoordvelden en versterkte waarden.

import mssql_python

# Complex passwords with special characters now parse correctly
conn = mssql_python.connect(
    "Server=<server>.database.windows.net;"
    "Database=<database>;"
    "UID=user@contoso;"
    "PWD={p@ssw0rd;with{braces}};"  # Braced values now handled correctly
    "Encrypt=yes"
)

Connection string sanitization is overgestapt van regex-gebaseerde logica naar parser-gebaseerde verwerking voor correcte afhandeling van ODBC-verbindingsreeks-syntaxis.

Fouten opgelost

  • GIL-release gerepareerd tijdens het blokkeren van ODBC-verbindingen en -ontkoppelingen.
  • Crashproblemen met setinputsizes() en SQL_DECIMAL hints SQL_NUMERIC opgelost.
  • Onjuist fetchone() gedrag voor ODBC-catalogusmethoden is gecorrigeerd.
  • Fouten met een ongeldige cursorstatus opgelost wanneer reset_cursor=False wordt gebruikt.
  • Vaste executemany() type hints voor mapping-gebaseerde parameterreeksen.
  • Een paddoorloopbeveiliging toegevoegd voor setup_logging(log_file_path=...).

mssql-python 1.5.0

Releasedatum: april 2026

Nieuwe functies

Ondersteuning voor het ophalen van Apache Arrow

Drie nieuwe cursormethoden bieden hoogpresterende kolomgegevensopvraging via de Arrow C Data Interface:

  • cursor.arrow() geeft een volledige pyarrow.Table terug.
  • cursor.arrow_batch() geeft een enkele pyarrow.RecordBatchterug.
  • cursor.arrow_reader() geeft een pyarrow.RecordBatchReader terug voor streaming.

De implementatie omzeilt het aanmaken van Python-objecten in het hot path voor betere prestaties. Voor volledige documentatie, zie Apache Arrow-integratie.

ondersteuning voor het type sql_variant

De driver detecteert sql_variant nu kolommen tijdens het ophalen, lost hun onderliggende basistype op en levert correct getypte Python-waarden terug in plaats van ruwe bytes.

Opmerking

sql_variant kolommen gebruiken een streaming-ophaalpad, wat de prestaties enigszins kan beïnvloeden in vergelijking met kolommen met een vast type.

Ingebouwde UUID-ondersteuning

Een nieuwe native_uuid instelling bepaalt of UNIQUEIDENTIFIER kolommen worden teruggegeven als uuid.UUID objecten (standaard) of als pyodbc-compatibele hoofdletterstrings. Configureer het op moduleniveau of per verbinding:

# Module-level default
settings = mssql_python.get_settings()
settings.native_uuid = True  # default

# Per-connection override
conn = mssql_python.connect(connection_string, native_uuid=False)

Voor meer informatie, zie Moduleconfiguratie.

Rijklasse openbare export

De Row klasse wordt nu op het hoogste niveau geëxporteerd voor type-annotaties:

from mssql_python import Row

Fouten opgelost

  • Opgelost: onjuiste detectie van ? binnen tussen vierkante haken geplaatste identifiers, stringliteralen en commentaar.
  • Vaste NULL-parameterbinding voor VARBINARY kolommen (veroorzaakt geen impliciete conversiefouten meer).
  • Vaste datetime.time waarden waarbij microseconden verloren gaan bij retouren voor TIME(1) doorgaande TIME(7) kolommen.
  • Ophaalpad voor Arrow gecorrigeerd zodat fracties van seconden correct worden opgenomen voor TIME-kolommen.
  • Opgeloste bulkkopie met Microsoft Entra ID-authenticatiemethoden (verouderde inloggegevens veroorzaken geen validatiefouten meer).
  • Azure Identity-credential-instanties op moduleniveau gecachet voor verbeterde authenticatieprestaties.

mssql-python 1.4.0

Releasedatum: maart 2025

Nieuwe functies

Ondersteuning voor bulkkopieën

Snel bulkladen van gegevens is nu beschikbaar via cursor.bulkcopy():

import mssql_python

conn = mssql_python.connect(connection_string)
cursor = conn.cursor()

cursor.execute("CREATE TABLE ##BulkDemo (ID INT, Name NVARCHAR(50), Price DECIMAL(10,2))")
conn.commit()

data = [
    (1, "Item 1", 10.50),
    (2, "Item 2", 20.75),
    # ... potentially millions of rows
]

result = cursor.bulkcopy("##BulkDemo", data)
print(f"Copied {result['rows_copied']} rows")

De methode accepteert opties voor batch_size, timeout, , column_mappings, keep_identity, check_constraints, table_lockkeep_nulls, , fire_triggers, en use_internal_transaction.

Zie Bulk copy voor volledige documentatie.

Improvements

  • Prestatieoptimalisaties voor grote resultatensets.
  • Verminderd geheugengebruik tijdens batchbewerkingen.
  • Verbeterde foutmeldingen voor mislukte bulk-kopieeracties.

mssql-python 1.3.0

Releasedatum: januari 2025

Nieuwe functies

Settings-klasse

Configureer module-breed gedrag via de nieuwe Settings klasse:

import mssql_python

settings = mssql_python.get_settings()
settings.lowercase = True       # Lowercase column names in cursor.description

Zie Moduleconfiguratie voor details.

Improvements

  • Betere afhandeling van verbindingstimeout tijdens Azure SQL failover.
  • Verbeterde compatibiliteit met Python 3.13.

mssql-python 1.2.0

Releasedatum: november 2024

Nieuwe functies

Methoden voor schema-ontdekking

Nieuwe cursormethoden voor het verkennen van metadata in databases:

cursor = conn.cursor()

# List all tables
cursor.tables(schema="dbo")

# Get column information
cursor.columns(table="Product", schema="Production")

# Get primary keys
cursor.primaryKeys(table="Product", schema="Production")

# Get foreign key relationships
cursor.foreignKeys(table="SalesOrderDetail", schema="Sales")

# Get stored procedures
cursor.procedures(schema="dbo")

# Get index statistics
cursor.statistics(table="Product", schema="Production")

# Get type information
cursor.getTypeInfo()

Zie Schema-ontdekking voor volledige documentatie.

Improvements

  • Verbeterde metadata-caching voor herhaalde schema-query's.
  • Betere verwerking van berekende kolommen in columns()-resultaten.

mssql-python 1.1.0

Releasedatum: september 2024

Nieuwe functies

Aangepaste uitgangsomzetters

Registreer aangepaste functies om kolomwaarden te transformeren tijdens het ophalen:

import mssql_python
from decimal import Decimal

conn = mssql_python.connect(connection_string)

# Convert decimals to float (converter receives Decimal)
def decimal_to_float(value):
    if value is None:
        return None
    return float(value)  # value is already a Decimal object

conn.add_output_converter(mssql_python.SQL_DECIMAL, decimal_to_float)

# Custom money formatting
def format_money(value):
    if value is None:
        return "$0.00"
    return f"${float(value):,.2f}"  # value is already a Decimal object

conn.add_output_converter(mssql_python.SQL_DECIMAL, format_money)

Beheermethoden:

  • add_output_converter(sql_type, converter_func)
  • get_output_converter(sql_type)
  • remove_output_converter(sql_type)
  • clear_output_converters()

Voor volledige documentatie, zie Custom type converters.

Improvements

  • Betere foutmeldingen voor mislukte typeconversies.
  • Ondersteuning voor converterfuncties die None retourneren.

mssql-python 1.0.0

Releasedatum: juli 2024

Eerste GA-release

De eerste algemene beschikbaarheidsrelease van mssql-python, Microsoft's native Python-driver voor SQL Server.

Kernfuncties

  • DDBC-architectuur: Directe databaseconnectiviteit zonder ODBC-driverinstallatie te vereisen.
  • DB-API 2.0-conformiteit: Standaard Python database-interface.
  • Verbindingspooling: Ingebouwd beheer van de verbindingspool.
  • Microsoft Entra-authenticatie: Volledige ondersteuning voor Azure-identiteitsgebaseerde authenticatie.
  • TLS-encryptie: Beveiligde verbindingen met certificaatvalidatie.

Verbindingsmogelijkheden

  • 21 verbindingsreeks-zoekwoorden.
  • 9 authenticatiemodi (SQL, Windows en 7 Microsoft Entra ID-methoden).
  • Autocommitbeheer.
  • Uitvoeringsmethoden: execute(), executemany(), en batch_execute().
  • Verbindingsattributen via set_attr() en getinfo().
  • Ondersteuning voor contextmanagers.

Cursorkenmerken

  • Standaard fetchmethoden: fetchone(), fetchmany(), . fetchall()
  • Uitgebreide methoden: fetchval(), skip().
  • Uitvoeringsmethoden: execute() en executemany().
  • Rijobjecten met attribuut- en indextoegang.
  • Navigatie met meerdere resultaatsets met nextset().

Ondersteuning voor gegevenstypen

  • Alle systeemeigen typen van SQL Server.
  • Python↔SQL-typetoewijzingen.
  • SQL-typeconstanten voor expliciete typering (bijvoorbeeld, mssql_python.SQL_DECIMAL).
  • NULL-afhandeling als PythonNone.

Transactieondersteuning

  • Handmatig vastleggen en terugdraaien.
  • Autocommit-modus.
  • Isolatieniveaucontrole.
  • Deadlock-detectie en -hantering.

Verificatiemodi

Mode Beschrijving
SQL Server-authenticatie Gebruikersnaam en wachtwoord
Windows authentication Trusted_Connection
ActiveDirectoryDefault DefaultAzureCredential
ActiveDirectoryInteractive Browsergebaseerde aanmelding
ActiveDirectoryDeviceCode Apparaatcodestroomproces
ActiveDirectoryPassword Microsoft Entra gebruikersnaam en wachtwoord (verouderd; gebruikt ROPC)
ActiveDirectoryMSI Beheerde identiteit
ActiveDirectoryServicePrincipal Service Principal
ActiveDirectoryIntegrated Windows Kerberos

Upgrade

Afkomstig van pyodbc

Voor gedetailleerde migratierichtlijnen, zie Migreren van pyodbc.

Belangrijkste verschillen:

  • Zowel ? (qmark) als %(name)s (pyformat) parameterstijlen worden ondersteund. Je bestaande ? queries werken zonder wijzigingen.
  • Geen methode callproc() . Gebruik EXECUTE in plaats daarvan statements.
  • Ingebouwde verbindingspooling.
  • Geen externe ODBC-driverafhankelijkheid.

Uit pymssql

Voor gedetailleerde migratierichtlijnen, zie Migreren van pymssql.

Belangrijkste verschillen:

  • Vervang de parameteraanduidingen %s en %d door ? of %(name)s.
  • Gebruik een verbindingsreeks in plaats van positionele argumenten.
  • Geen FreeTDS-afhankelijkheid.
  • Meerdere gelijktijdige cursors per verbinding.
  • Rijobjecten met attribuuttoegang vervangen as_dict=True.

Tussen versies van mssql-python

Upgrade de driver om nieuwe functies en oplossingen te krijgen.

pip install --upgrade mssql-python

Bekijk de release notes op eventuele breaking changes voordat je de productiesystemen upgradet.

Roadmap

Voor aankomende functies en de ontwikkelingsroute, zie de GitHub-repository.