Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek uvádí, co se změnilo v každém vydání ovladače mssql-python, nejprve nejnovější informace. Každá sekce pokrývá nové funkce, změny chování a opravy chyb u jedné verze.
Pro verze, které Microsoft aktuálně podporuje, viz životní cyklus podpory.
mssql-python 1.14.0
Datum vydání: srpen 2026
Enhancements
Detekce parametrů a vazby běží v nativním kódu
Detekce typů parametrů a vazby nyní běží v jednom nativním potrubí místo volání Python podle parametrů. Tato změna odstraňuje významné omezení výkonu a přináší výraznější zvýšení propustnosti v celém procesu u větších operací, jako je hromadné vkládání. Není potřeba žádná změna přihlášky.
Opravy chyb
Argument timeout pro connect() nastavil časový limit dotazu místo časového limitu ověřování
Argument timeout nyní nastavuje SQL_ATTR_LOGIN_TIMEOUT a omezuje autentizační pokus, což je přesně to, co popisuje název argumentu a dokumentace. V dřívějších verzích se z toho stal časový limit pro jednotlivé příkazy, takže connect(timeout=30) neomezovalo, jak dlouho mohl pokus o připojení trvat, a ukončovalo dotazy po 30 sekundách. Časový limit dotazu na jednotlivé výkazy zůstává dostupný jako vlastnost Connection.timeout .
Důležité
Pokud jste předali timeout do connect(), aby se přerušily dlouhotrvající dotazy, k tomu už nedochází. Místo toho nastavte Connection.timeout. Totéž platí, pokud jste se spoléhali na connect(timeout=) k prodloužení časového limitu připojení, který bulkcopy() používá pro své interní připojení: nastavte Connection.timeout před vytvořením kurzoru.
Pro více informací viz Časový limit připojení.
bulkcopy() Odmítnut timeout=0
Hodnota timeout0 vyvolala chybu ověření, i když 0 v podkladovém rozhraní API pro hromadné kopírování znamená, že není nastaven žádný časový limit. Metoda nyní přijímá 0 a deaktivuje časový limit operace. Záporné, neceločíselné a booleovské hodnoty jsou stále odmítány.
Další informace najdete v části Hromadné kopírování.
Vyčištění nahradilo původní výjimku při načítání Arrow.
Když nedošlo k načtení z čtečky Arrow, cesta k čištění ovladače vyvolala druhou chybu, která nahradila původní, takže volající viděli neúspěch čištění místo důvodu, proč nedošlo k načítání. Čištění nyní nejprve kontroluje stav kurzoru a zachovává původní výjimku.
executemany() Chyby při převodu desetinných čísel zahrnovaly hodnoty parametrů
Selhání executemany() převodu v desetinné fázi hlásilo problematickou hodnotu prostřednictvím řetězené výjimky, která mohla umístit zákaznická data do aplikačních logů a monitorovacích systémů. Chyba nyní uvádí pouze index řádku, sloupcový index a typ hodnoty.
Další informace naleznete v tématu Zpracování chyb.
Hromadné kopírování bylo pro typy zobrazení Arrow odmítnuto
bulkcopy_arrow() neuměl zpracovat pole Arrow View s proměnlivou délkou, takže sloupce Polars string_view bylo nejprve nutné převést pomocí DataFrame.to_arrow(). Hodnoty StringView a hodnoty NULL se nyní předávají přímo přes rozhraní Arrow C Data Interface.
Pro více informací viz integrace Polars.
Načítání rozšíření Windows využívalo architekturu hostitelského CPU
V systému Windows ovladač vybíral své nativní rozšíření podle CPU hostitele namísto právě spuštěného interpretu, takže se x64 Python na hostiteli ARM64 načítal pomocí náhradní cesty a vypisoval hlášení na standardní výstup. Loader nyní určuje architekturu podle interpretu příkazů a náhradní řešení oznamuje formou varování.
mssql-python 1.13.0
Datum vydání: srpen 2026
Enhancements
Binární soubory ovladačů ODBC jsou dodávány pouze v mssql-python-odbc
Verze 1.13.0 odstraňuje záložní mechanismus libs/ z balíčku mssql-python wheel a deklaruje mssql-python-odbc==18.6.2.1 v install_requires. Příkaz pip install mssql-python stále vytváří funkční ovladač. Nainstalujte mssql-python-odbc výslovně při instalaci pomocí --no-deps nebo z privátního indexu, který ho nezrcadlí.
Další informace naleznete v tématu Instalace.
Hromadná kopie ze zdrojů Apache Arrow
Nová cursor.bulkcopy_arrow() metoda načítá data, která už jsou ve formátu Apache Arrow, aniž by každý řádek nejprve převáděl do Python objektů. Předání zdroje Arrow do bulkcopy() nyní vyvolá TypeError.
Pro více informací viz integrace Apache Arrow a hromadná kopie.
token_provider parametr pro přihlašovací údaje Microsoft Entra
Funkce connect() a třída Connection přijímají token_provider argument, takže můžete předat přihlašovací objekt, DefaultAzureCredential například místo pojmenování autentizačního režimu v připojovací řetězec. Tento argument se vzájemně vylučuje s klíčovým slovem Authentication a s tokeny předanými prostřednictvím attrs_before a podporuje pouze rozsah komerčního cloudu Azure.
Další informace naleznete v tématu ověřování Microsoft Entra.
Sdružování připojení s ohledem na identitu
Fond připojení nyní rozlišuje připojení podle identity Microsoft Entra. V dřívějších verzích pool klíčoval pouze na připojovací řetězec, takže pool mohl předat spojení autentizované jako jeden uživatel požadavku jiného. Ovladač také získá token pouze tehdy, když požadavek na připojení mine fond připojení, a obnoví připojení ve fondu, když do vypršení platnosti jeho tokenu zbývá méně než 5 minut.
Pro více informací viz Sdružování připojení.
Opravy chyb
executemany() vkládal řádky s nulami, když se za prvním řádkem objevily hodnoty NULL
Volání executemany(), které kombinovalo číselné hodnoty, které nebyly NULL, a hodnoty NULL, vložilo nula řádků a nevyvolalo žádnou výjimku, když se první hodnota NULL objevila až po prvním řádku. Toto chování ovlivnilo parametry tinyint, smallint, int a float . Ovladač nyní inicializuje ODBC indikátory pro každý číselný parametr s pevnou šířkou před vykonáním pole.
Převodník výstupu SQL_WVARCHAR transformoval sloupce, které nejsou řetězcové
Registrace jediného převodníku pro řetězce také převáděla hodnoty typu int, decimal a date, protože ovladač použil jako záložní převodník SQL_WVARCHAR u každého sloupce bez vlastního převodníku. Ovladač nyní používá tuto záložní možnost pouze tehdy, když je namapovaný pythonovský typ sloupce str nebo bytes.
Výstupní převodníky registrované celočíselným SQL typovým kódem nikdy neběžely
Převodníky registrované s celočíselným kódem typu SQL, například SQL_DECIMAL, byly uloženy, ale nikdy nebyly spuštěny, protože ovladač rozlišoval pouze podle typu Pythonu v cursor.description. Ovladač nyní nejprve rozhoduje podle celočíselného kódu, poté podle typu v Pythonu a nakonec podle záložní možnosti SQL_WVARCHAR.
Důležité
Pokud jste v dřívější verzi registrovali převodníky podle celočíselného SQL kódu, tyto převodníky začnou běžet při upgradu. Před nasazením je zkontrolujte, protože hodnoty sloupců, které dříve prošly beze změny, se nyní transformují.
Pro více informací viz Custom Type Converters.
Zavření čtečky Arrow neuvolnilo kurzor na serveru
Zavření čtečky Arrow způsobilo, že kurzor na straně serveru zůstal alokovaný a nadřazený objekt Cursor byl v nekonzistentním stavu, protože cursor.arrow_reader() vracelo nezpracované pyarrow.RecordBatchReader. Metoda nyní vrací obal, jehož close() metoda uvolní kurzor na straně serveru a resetuje stav kurzoru, a obal funguje jako správce kontextu.
Pro více informací viz integrace Apache Arrow.
Částečně inicializovaný kurzor zvednutý AttributeError v Cursor.__del__
Kurzor, jehož inicializátor selhal, vyvolal během sběru odpadu AttributeError jako nevyvolatelnou výjimku.
K vyvolání Cursor.__init__ došlo předtím, než nastavil atributy closed a hstmt, které se pak __del__ pokusil přečíst. Inicializátor nyní nastavuje oba atributy před jakýmkoli kódem, který může nastartovat, a __del__ chrání svůj logovací volání, aby zůstalo bezpečné během vypnutí interpretu.
mssql-python 1.12.0
Datum vydání: červenec 2026
Enhancements
Samostatný mssql-python-odbc doprovodný balíček
Binárky ovladačů ODBC jsou nyní publikovány samostatně jako mssql-python-odbc, což je datový doprovodný balíček připnutý k verzi 18.6.2. Nemusíte měnit žádný kód, protože pip install mssql-python s ním se instaluje doprovodný balíček. Nativní nakladač preferuje doprovodný balíček a když není přítomen, používá binárky zabudované uvnitř mssql-python kola.
Další informace naleznete v tématu Instalace.
Opravy chyb
cursor.bulkcopy() Nyní používá časový limit připojení rodičovského připojení
bulkcopy() nyní používá časový limit připojení svého rodičovského připojení, který nastavíte pomocí connect(..., timeout=<seconds>). Dříve samostatné připojení, které otevírá bulk copy, používalo pevně nastavený 15sekundový časový limit pro připojení, který nebylo možné změnit z Pythonu. Na nadřazené spojení vytvořené pomocí timeout=0 se stále použije výchozí hodnota 15 sekund.
Další informace najdete v části Hromadné kopírování.
cursor.bulkcopy() podporuje uživatelsky definované sloupce typu CLR
cursor.bulkcopy() dříve selhalo s Protocol Error: Unsupported TDS type for bulk copy: 0xF0 u jakéhokoli cílového sloupce, který používal uživatelsky definovaný typ Common Language Runtime (CLR), včetně vestavěných typů geography, geometry a hierarchyid. Ovladač nyní mapuje sloupce CLR UDT na varbinary(max) na drátu a streamuje bajty, které zadáte, jako payload UDT IBinarySerialize . Oprava vyjde ve mssql_py_core verzi 0.1.7.
Pro více informací viz Hromadné kopírovaní a mapování datových typů.
mssql-python 1.11.0
Datum vydání: červenec 2026
Enhancements
Zlepšená sémantika správce kontextu
with connection: nyní potvrdí transakci, pokud je blok ukončen bez chyb, a vrátí ji zpět, pokud je blok opuštěn kvůli výjimce.
Další informace naleznete v tématu Správa transakcí.
Opravy chyb
- Bylo opraveno uváznutí na GIL při ukončování ODBC (
conn.close()acursor.close()) a vSQLDescribeParampro parametry s hodnotouNonev konfiguracích se SSH tunelem a s in-process forwarderem. - Pevné
BINARYaVARBINARYNULL parametry v dočasných tabulkách a tabulkových proměnných. Když automatické určení typu selže, ovladač nyní vygeneruje varování Pythonu s explicitními pokynycursor.setinputsizes(). - Opravena chyba, kdy
import mssql_pythonna Apple Silicon selhávalo při čisté instalaci (regrese v 1.8.0). Závislosti přibalené knihovny ODBC dylib jsou nyní přepsány pro architekturyarm64ix86_64. - Opraveno uváznutí GIL v jádru v Rustu, které při autentizaci pomocí
Authentication=ActiveDirectoryServicePrincipalzpůsobovalo zamrznutí operací hromadného kopírování.
mssql-python 1.10.0
Datum vydání: červen 2026
Enhancements
Podpora hromadného kopírování v ActiveDirectoryServicePrincipal
cursor.bulkcopy() nyní podporuje Authentication=ActiveDirectoryServicePrincipal, takže můžete provádět hromadné vkládání pomocí přihlašovacích údajů instančního objektu služby.
Další informace najdete v článcích Hromadné kopírování a ověřování Microsoft Entra.
Opravy chyb
- Byla opravena data obsahující znaky mimo ASCII v
VARCHARaCHARv cestě načítání Arrow. - Pevné časové limity připojení během operací hromadného zatížení.
MSSQL-Python 1.9.0
Datum vydání: červen 2026
Enhancements
Řádkové objekty v hromadné kopii
cursor.bulkcopy() nyní přijímá načítané objekty Row přímo místo nutnosti ruční převodu n-tic.
Pro více informací viz Hromadné kopírovaní a Řádkování objektů.
Opravy chyb
- Pevné pouzdro koleček, takže
simdutfje vždy staticky propojené. - Pevné
DECIMALvelké inserty vexecutemany(). - Opraven nesprávný type-fallback pro NULL parametry.
- Opraveny problémy při serializaci a deserializaci výjimek.
- Opraveno
nextset()tak, aby sePRINTzprávy uchovávaly napříč sadami výsledků. - Opraveno zpracování
Rowv záložní větviexecutemany()pro data za běhu. - Opravena kontrola typů metody fetch pro nástroje statické analýzy.
mssql-python 1.8.0
Datum vydání: květen 2026
Enhancements
Podpora hromadného kopírování v ActiveDirectoryMSI
cursor.bulkcopy() nyní podporuje Authentication=ActiveDirectoryMSI systémově a uživatelem přiřazené spravované identity.
Další informace najdete v tématech Hromadné kopírování a autentizace Microsoft Entra.
Indexování řádků pomocí řetězcových klíčů
Nyní můžete přistupovat k hodnotám řádků podle názvu sloupce, například row["col"], kromě pozičního indexování a přístupu k atributům.
Pro více informací viz Řádkové objekty.
Balíček pro upgrade ovladačů ODBC
Přibalený ovladač Microsoft ODBC pro SQL Server byl aktualizován na verzi 18.6.2.1.
Opravy chyb
- Opraveny problémy se životností odloženého atributu připojení v autentizaci založené na tokenech.
- Opraveno opakované parsování připojovací řetězec v autentizační cestě.
- Fixní
executemany()typové anotace pro vstupy sekvencí.
mssql-python 1.7.1
Datum vydání: květen 2026
Enhancements
Rozšířené pokrytí kol a zlepšení výkonu
Toto vydání zahrnuje:
- Kola kompatibilní s RHEL 8.
- Obnovil jsem kola macOS Python 3.10
universal2. - Vylepšené zpracování UTF-16 prostřednictvím
simdutf. - Optimalizovaná
execute()horká cesta.
Dopad na výkon: Propustnost dávkového zpracování se zvyšuje díky optimalizacím hot path v metodě execute().
Další informace naleznete v tématu Instalace.
Opravy chyb
- Byla opravena selhání při ověřování, takže nyní vyvolávají výjimky DB-API
mssql_pythonmístoRuntimeError. - Rozšířené uvolnění GIL napříč blokováním volání atributů ODBC při vykonávání, načítání, transakcích a připojení.
- Opraveny
executemany()chyby při změně znaménka desetinných hodnot. - Opraveno nekonzistentní dekódování CP1252
VARCHARnapříč platformami. - Opravené
cursor.bulkcopy()chyby pro prázdné řetězce vNVARCHAR(MAX)aVARCHAR(MAX)sloupcích.
Note
Verze 1.7.0 byla stažena kvůli problémům s publikací. Použijte verzi 1.7.1 nebo novější.
mssql-python 1.6.0
Datum vydání: duben 2026
Enhancements
Sanitizace připojovací řetězec založená na parseru
Sanitizace spojovacích řetězců nyní používá parser místo regulárních výrazů, takže spojovací řetězce obsahující speciální znaky v heslech a závorkových hodnotách se správně parsují.
Další informace naleznete v tématu Připojovací řetězce.
Opravy chyb
- Opraveno uvolnění GIL během blokování operací ODBC připojení a odpojení.
- Opraveny pády související s nápovědami
setinputsizes()aSQL_DECIMALvSQL_NUMERIC. - Opraveno nesprávné
fetchone()chování pro katalogové metody ODBC. - Byly opraveny chyby neplatného stavu kurzoru při použití
reset_cursor=False. - Fixní
executemany()tipy pro sekvence parametrů založené na mapování. - Přidána ochrana proti průchodu adresářovou strukturou pro
setup_logging(log_file_path=...).
mssql-python 1.5.0
Datum vydání: duben 2026
Nové funkce
Podpora načítání Apache Arrow
Tři nové metody kurzoru poskytují vysoce výkonné sloupcové vyhledávání dat prostřednictvím rozhraní Arrow C Data Interface:
-
cursor.arrow()vrátí kompletnípyarrow.Table. -
cursor.arrow_batch()Vrátí jednopyarrow.RecordBatch. -
cursor.arrow_reader()vracípyarrow.RecordBatchReaderpro streamování.
Tyto metody nevytvářejí Python objekt pro každou hodnotu. Pro kompletní dokumentaci viz integrace Apache Arrow.
podpora typu sql_variant
Ovladač nyní detekuje sql_variant sloupce při načítání, rozlišuje jejich základní typ a vrací správně zadané hodnoty v Python místo surových bajtů.
Note
sql_variant Sloupce používají streamovanou cestu načítaní, která může mít mírný dopad na výkon ve srovnání s pevně danými sloupci.
Další informace naleznete v tématu Mapování datových typů.
Nativní podpora UUID
Nové nastavení native_uuid určuje, zda se sloupce UNIQUEIDENTIFIER vracejí jako objekty uuid.UUID (výchozí), nebo jako řetězce psané velkými písmeny kompatibilní s pyodbc. Konfigurujte to na úrovni modulu nebo podle připojení.
Pro více informací viz Konfigurace modulu.
Veřejný export třídy řádku
Třída Row je nyní exportována na nejvyšší úrovni pro typové anotace.
Pro více informací viz Řádkové objekty.
Opravy chyb
- Opravena chybná detekce
?uvnitř identifikátorů v závorkách, řetězcových literálů a komentářů. - Pevné přiřazení NULL parametrů pro
VARBINARYsloupce (již nezpůsobuje implicitní konverzní chyby). - Opraven problém, kdy hodnoty
datetime.timepři zpětném převodu ztrácely mikrosekundy u sloupců odTIME(1)doTIME(7). - Byla opravena cesta načítání Arrow, aby správně zahrnovala zlomkové sekundy pro sloupce
TIME. - Opraveno hromadné kopírování pomocí autentizačních metod Microsoft Entra ID (zastaralá přihlašovací pole už nezpůsobují chyby validace).
- Cacheované instance přihlašovacích údajů Azure Identity na úrovni modulu pro lepší výkon autentizace.
mssql-python 1.4.0
Datum vydání: únor 2026
Nové funkce
Podpora hromadného kopírování
Vysoce výkonné hromadné načítání dat je nyní dostupné prostřednictvím cursor.bulkcopy(). Metoda přijímá možnosti pro batch_size, timeout, column_mappings, keep_identity, check_constraints, table_lock, keep_nulls, fire_triggersa .use_internal_transaction
Další informace najdete v části Hromadné kopírování.
Vylepšení
- Optimalizace výkonu pro velké sady výsledků.
- Snížení spotřeby paměti během dávkových operací.
- Vylepšené chybové zprávy při selhání hromadného kopírování.
mssql-python 1.3.0
Datum vydání: leden 2026
Nové funkce
Třída nastavení
Nakonfigurujte chování celého modulu pomocí nové Settings třídy, která zahrnuje lowercase nastavení pro názvy sloupců v cursor.description.
Pro více informací viz Konfigurace modulu.
Vylepšení
- Lepší řešení vypršení připojení během failoveru Azure SQL.
- Zlepšená kompatibilita s Python 3.13.
mssql-python 1.2.0
Datum vydání: leden 2026
Nové funkce
Metody objevování schémat
Nové metody kurzoru zkoumají metadata databáze: tables(), , primaryKeys()columns(), foreignKeys(), procedures(), , statistics()a getTypeInfo().
Pro více informací viz Schema discovery.
Vylepšení
- Vylepšené cachování metadat pro opakované dotazy na schémata.
- Lepší zpracování vypočítaných sloupců ve výsledcích
columns().
mssql-python 1.1.0
Datum vydání: prosinec 2025
Nové funkce
Vlastní výstupní měniče
Zaregistrujte vlastní funkce pro transformaci hodnot sloupců během načítání pomocí add_output_converter(), get_output_converter(), remove_output_converter() a clear_output_converters().
Další informace naleznete v článku Vlastní převaděče typů.
Vylepšení
- Lepší chybové zprávy při selhání převodu typů.
- Podpora funkcí převodníku, které vracejí
None.
mssql-python 1.0.0
Datum vydání: listopad 2025
První vydání GA
První všeobecně dostupná verze mssql-python, nativního Python ovladače Microsoft pro SQL Server.
Pro více informací viz ovladač mssql-python.
Základní funkce
- Architektura DDBC: Přímé připojení k databázi bez nutnosti instalace ovladačů ODBC.
- Soulad s DB-API 2.0: Standardní databázové rozhraní Pythonu.
- Sdružování připojení: Vestavěná správa fondu připojení.
- Ověřování Microsoft Entra: Plná podpora ověřování na základě identity Azure.
- TLS šifrování: Zabezpečené spojení pomocí ověřování certifikátů.
Funkce připojení
- 21 klíčových slov připojovacího řetězce.
- 9 autentizačních režimů (SQL, Windows a 7 metod Microsoft Entra ID).
- Ovládání autocommitu.
- Metody provádění:
execute(),executemany(), abatch_execute(). - Atributy připojení prostřednictvím
set_attr()agetinfo(). - Podpora správce kontextu.
Funkce kurzoru
- Standardní metody načítání:
fetchone(),fetchmany(), .fetchall() - Rozšířené metody:
fetchval(), .skip() - Metody provádění:
execute()aexecutemany(). - Řádkové objekty s přístupem k atributům a indexům.
- Navigace s množinou výsledků pomocí
nextset().
Podpora datových typů
- Všechny nativní typy pro SQL Server.
- Mapování typů Python↔SQL.
- SQL typové konstanty pro explicitní typování (například
mssql_python.SQL_DECIMAL). - Zpracování hodnoty NULL stejně jako v Pythonu
None.
Podpora transakcí
- Ruční potvrzení a vrácení změn.
- Režim automatického potvrzování.
- Kontrola úrovně izolace.
- Detekce a řešení zablokování.
Režimy ověřování
| Mode | Popis |
|---|---|
| Ověřování SQL Serveru | Uživatelské jméno a heslo |
| Autentizace Windows | Trusted_Connection |
| ActiveDirectoryDefault | DefaultAzureCredential |
| ActiveDirectoryInteractive | Přihlášení v prohlížeči |
| ActiveDirectoryDeviceCode | Tok kódu zařízení |
| ActiveDirectoryPassword | Microsoft Entra uživatelské jméno a heslo (zastaralé; používá ROPC) |
| ActiveDirectoryMSI | Spravovaná identita |
| ActiveDirectoryServicePrincipal | Hlavní služba |
| ActiveDirectoryIntegrated | Windows Kerberos |
Upgrade
Z pyodbc
Pro podrobné pokyny k migraci viz Migrate from pyodbc.
Hlavní rozdíly:
- Podporovány jsou jak
?(qmark), tak (pyformat) styly%(name)sparametrů. Vaše stávající?dotazy fungují bez změn. - Žádná
callproc()metoda. Místo toho použijte příkazyEXECUTE. - Vestavěné sdružování připojení.
- Žádná závislost na externím ODBC ovladači.
Z pymssql
Pro podrobné pokyny k migraci viz Migrate from pymssql.
Hlavní rozdíly:
- Nahraďte značky parametrů
%sa%dznačkami?nebo%(name)s. - Použijte připojovací řetězec místo pozičních argumentů.
- Žádná závislost na FreeTDS.
- Více současných kurzorů na jedno připojení.
- Řádkové objekty s přístupem k atributům nahrazují
as_dict=True.
Mezi verzemi mssql-python
Upgradujte ovladač pro nové funkce a opravy.
pip install --upgrade mssql-python
Před upgradem produkčních systémů si zkontrolujte poznámky k vydání, jestli se neobjeví nějaké zásadní změny.
Plán cesty
Pro nadcházející funkce a vývojový plán navštivte repozitář GitHub.