Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az mssql-python illesztőprogramjának minden kiadása új funkciókat, teljesítményjavításokat és hibajavításokat kínál. Az alábbi részek részletezik az összes verziót.
MSSQL-python 1.11.0
Megjelenési dátum: 2026. július
Fejlesztések
Javított kontextuskezelő szemantika
with connection: most már megfelelően véglegesíti a tranzakciókat tiszta kilépéskor, és kivétel esetén visszagörgeti őket, így inkább a Python szellemiségéhez igazodik és kiszámíthatóbbá válik.
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
Hibajavítások
- Javítottunk egy GIL-holtpontot az ODBC leépítési útvonalán (
conn.close()éscursor.close()), valamint a(z)SQLDescribeParamesetében aNoneértékű paramétereknél SSH-alagutas és folyamaton belüli továbbító konfigurációkban. - Fix
BINARYésVARBINARYNULL paraméterek a temp táblákban és tábváltozókban. Amikor az automatikus típusfelbontás meghibásodik, az illesztőprogram most Python figyelmeztetést ad ki explicitcursor.setinputsizes()útmutatással. - Javítottam
import mssql_pythonaz Apple Silicon hibáját tiszta telepítéssel (regresszió az 1.8.0-ban). A csomagban lévő ODBC dylib függőségeket most mindkettőarm64ésx86_64az architektúra számára is újraírják. - Kijavítottunk egy, a Rust-alapú magban jelentkező GIL miatti holtzárat, amely miatt a tömeges másolási műveletek lefagytak a(z)
Authentication=ActiveDirectoryServicePrincipalhasználatával történő hitelesítéskor.
MSSQL-python 1.10.0
Kiadás dátuma: 2026. június
Fejlesztések
ActiveDirectoryServicePrincipal támogatása tömeges másoláshoz
cursor.bulkcopy() Most már támogatja Authentication=ActiveDirectoryServicePrincipal, lehetővé teszi a tömeges beillesztéseket a szolgáltatásfő hitelesítő adatok használatával.
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")
Hibajavítások
- Javítva lettek a nem ASCII
VARCHARésCHARadatok az Arrow lekérési útvonalán. - Fix csatlakozási időkorlátok a tömeges terhelési műveletek során.
MSSQL-python 1.9.0
Kiadás dátuma: 2026. június
Fejlesztések
Sorobjektumok tömeges másolás során
cursor.bulkcopy() most már közvetlenül elfogadja a lekért Row objektumokat, ahelyett hogy megkövetelné a tuple-ök kézi átalakítását.
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")
Hibajavítások
- Fix kerekes csomagolás, így
simdutfmindig statikus összekötött. - Kijavítottuk a nagy
DECIMALbeszúrásokat a következőben:executemany() - Javítva a hibás típus-visszaállítás a NULL paraméterek esetén.
- Javított kivételes savanyúságos és kioldó oda-vissza utak.
- Kijavítottuk a(z)
nextset()elemet, így aPRINTüzenetek megmaradnak az eredményhalmazok között. - Javítottuk a
Rowkezelését aexecutemany()végrehajtáskori adat-visszaesési útvonalán. - Javítottuk a fetch metódus típusellenőrzését a statikus kódelemző eszközök számára.
MSSQL-python 1.8.0
Kiadás dátuma: 2026. május
Fejlesztések
ActiveDirectoryMSI támogatás a tömeges másoláshoz
cursor.bulkcopy() Most már támogatja Authentication=ActiveDirectoryMSI a rendszer által hozzárendelt és felhasználó által hozzárendelt menedzselt identitásokat.
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")
Karakterlánc-kulcsú sorindexelés
Most már oszlopnév alapján is elérheted a sorértékeket, például row["col"], a pozíciós indexelés és attribútum-hozzáférés mellett.
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
A csomagban található ODBC-illesztőprogram frissítése
A mellékelt Microsoft ODBC Driver for SQL Server frissítették 18.6.2.1-re.
Hibajavítások
- Kijavították a tokenalapú hitelesítésben a halasztott connect-attribútum élettartamával kapcsolatos problémákat.
- Javítottam a hitelesítési útvonalon ismételt ismételt kapcsolati karakterlánc parzálást.
- Fix
executemany()típusú annotációk a szekvencia bemenetekhez.
MSSQL-python 1.7.1
Kiadás dátuma: 2026. május
Fejlesztések
Bővített kerékfedés és teljesítményfejlesztések
Ez a kiadás RHEL 8-kompatibilis wheel csomagokat ad hozzá, visszaállítja a macOS-hez készült Python 3.10-es universal2 wheel csomagokat, javítja az UTF-16 kezelését a(z) simdutf révén, és optimalizálja a execute() kritikus végrehajtási útvonalát.
Teljesítményhatás: A köteg végrehajtási áteresztőképesség ~15%-vel javul tipikus munkaterhelésekhez képest a módszer forró útoptimalizálása execute() miatt.
Hibajavítások
- Kijavították a bejelentkezési hibák kezelését, így azok mostantól
mssql_pythonDB-API kivételeket váltanak kiRuntimeErrorhelyett. - Kiterjesztett GIL kiadás az ODBC végrehajtási, betöltési, tranzakciós és kapcsolati attribútumhívások blokkolására.
- Kijavították a
executemany()hibákat, amikor a tizedes értékek előjelet váltanak. - Javították a CP1252
VARCHARinkonzisztens dekódolását a platformok között. - Kijavították a(z)
NVARCHAR(MAX)ésVARCHAR(MAX)oszlopokban előforduló üres karakterláncok miatticursor.bulkcopy()hibákat.
Megjegyzés:
Az 1.7.0 verziót kivonásra került a kiadási problémák miatt. Használd az 1.7.1-es vagy újabb verziót.
MSSQL-python 1.6.0
Kiadás dátuma: 2026. április
Fejlesztések
Elemzőalapú kapcsolati karakterlánc-megtisztítás
Ez a fejlesztés biztosítja a jelszómezők speciális karaktereinek és a rögzített értékek helyes elemzését.
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"
)
A kapcsolati karakterlánc megtisztítása a regexalapú logikáról elemzőalapú feldolgozásra állt át az ODBC-kapcsolati karakterlánc szintaxisának helyes kezelése érdekében.
Hibajavítások
- Kijavították a GIL felszabadítását a blokkoló ODBC-kapcsolódási és -bontási műveletek során.
- Kijavítottuk a
SQL_DECIMALésSQL_NUMERICtippekkel kapcsolatossetinputsizes()összeomlásokat. - Javítottam az ODBC katalógus módszereinek hibás
fetchone()viselkedését. - Kijavítottuk az érvénytelen kurzorállapotból eredő hibákat a
reset_cursor=Falsehasználatakor. - Fix
executemany()típusú tippek leképezés-alapú paramétersorozatokhoz. - Útvonal-bejárás elleni védelem hozzáadva a(z)
setup_logging(log_file_path=...)elemhez.
MSSQL-python 1.5.0
Kiadás dátuma: 2026. április
Új funkciók
Apache Arrow lekérési támogatás
Három új kurzormódszer biztosít nagy teljesítményű oszlopos adatkeresést az Arrow C adatinterfészen keresztül:
-
cursor.arrow()egy teljespyarrow.Tableértéket ad vissza. -
cursor.arrow_batch()egyetlenpyarrow.RecordBatchelemet ad vissza. -
cursor.arrow_reader()egypyarrow.RecordBatchReaderobjektumot ad vissza a streameléshez.
A megvalósítás a teljesítmény javítása érdekében megkerüli a Python-objektumok létrehozását a kritikus végrehajtási útvonalon. A teljes dokumentációért lásd: Apache Arrow integráció.
sql_variant típusú támogatás
A meghajtó most sql_variant már a lekéréskor észleli az oszlopokat, feloldja azok alaptípusát, és helyesen gépelt Python értékeket ad vissza nyers bájtok helyett.
Megjegyzés:
sql_variant Az oszlopok egy streaming fetch útvonalat használnak, ami enyhe teljesítményhátrányt okozhat a fix típusú oszlopokhoz képest.
Natív UUID támogatás
Egy új native_uuid beállítás azt szabályozza, hogy a UNIQUEIDENTIFIER oszlopok uuid.UUID objektumokként (alapértelmezés szerint) vagy pyodbc-kompatibilis, csupa nagybetűs karakterláncokként kerülnek-e visszaadásra. Konfiguráld modul szinten vagy minden kapcsolaton:
# 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)
További információért lásd: Modul konfiguráció.
Sor osztálya publikus export
Az Row osztály most a felső szinten exportálható típusannotációkhoz:
from mssql_python import Row
Hibajavítások
- Kijavítottuk a
?hamis pozitív észlelését zárójelek közé tett azonosítókban, karakterlánc-literálokban és megjegyzésekben. - Rögzített NULL paraméterkötés oszlopokhoz
VARBINARY(ami már nem okoz implicit átalakítási hibákat). - Kijavítva egy hiba, amely miatt a
TIME(1)ésTIME(7)közötti oszlopokban adatetime.timeértékek oda-vissza konvertálás során elvesztették a mikroszekundumokat. - Fix nyíl bevonási útvonal, hogy helyesen tartalmazza a törtmásodperceket az
TIMEoszlopokhoz. - Javítottam a tömeges másolatot Microsoft Entra ID hitelesítési módszerekkel (az elavult credential mezők már nem okoznak ellenőrző hibákat).
- Az Azure Identity hitelesítőadat-példányait modulszinten gyorsítótáraztuk a hitelesítési teljesítmény javítása érdekében.
MSSQL-python 1.4.0
Megjelenési dátum: 2025. március
Új funkciók
Tömeges másolattámogatás
A nagy teljesítményű tömeges adatbetöltés most már elérhető a következő módon 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")
A metódus a következőkhöz fogad el beállításokat: batch_size, timeout, column_mappings, keep_identity, check_constraints, table_lock, keep_nulls, fire_triggers és use_internal_transaction.
A teljes dokumentációért lásd a tömeges másolatot .
Improvements
- Teljesítményoptimalizálás nagy eredményhalmazokhoz.
- Csökkent memóriaigény a batch műveletek során.
- Javított hibaüzenetek tömeges másolási hibákhoz.
mssql-python 1.3.0
Megjelenési dátum: 2025. január
Új funkciók
Beállítások osztály
Konfiguráld a modulszintű viselkedést az új Settings osztályon keresztül:
import mssql_python
settings = mssql_python.get_settings()
settings.lowercase = True # Lowercase column names in cursor.description
Részletekért lásd a modul konfigurációt .
Improvements
- A kapcsolat időtúllépésének jobb kezelése az Azure SQL átállása során.
- Javított kompatibilitás a Python 3.13-mal.
MSSQL-python 1.2.0
Megjelenési dátum: 2024 november
Új funkciók
Sémafelfedezési módszerek
Új kurzormódszerek az adatbázis metaadat-kutatásához:
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()
A teljes dokumentációért lásd a Sémafelderítést.
Improvements
- Fejlesztett metaadat-gyorsítótár ismétlődő séma lekérdezésekhez.
- A kiszámított oszlopok jobb kezelése az
columns()eredményekben.
MSSQL-python 1.1.0
Megjelenési dátum: 2024. szeptember
Új funkciók
Egyedi kimeneti konverterek
Regisztrálj egyedi függvényeket oszlopértékek átalakításához a betöltés során:
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)
Kezelési módszerek:
add_output_converter(sql_type, converter_func)get_output_converter(sql_type)remove_output_converter(sql_type)clear_output_converters()
A teljes dokumentációért lásd: Egyedi típusú konverterek.
Improvements
- Jobb hibaüzenetek típuskonverziós hibák esetére.
- A
None-t visszaadó konverterfüggvények támogatása.
MSSQL-python 1.0.0
Megjelenési dátum: 2024. július
Első általánosan elérhető kiadás
Az mssql-python első általános elérhetőségű kiadása, a Microsoft natív Python illezőprogramja az SQL Server-hez.
Alapvető funkciók
- DDBC architektúra: Közvetlen adatbázis-csatlakozás ODBC illezser telepítés nélkül.
- DB-API 2.0 megfelelőség: Szabványos Python adatbázis interfész.
- Kapcsolatpoolozás: Beépített kapcsolatpool-kezelés.
- Microsoft Entra hitelesítés: Teljes támogatás az Azure identitásalapú hitelesítéshez.
- TLS titkosítás: Biztonságos kapcsolatok tanúsítvány ellenőrzéssel.
Kapcsolódási jellemzők
- 21 kapcsolati karakterlánc-kulcsszó.
- 9 hitelesítési mód (SQL, Windows és 7 Microsoft Entra ID módszer).
- Automatikus elköteleződési kontroll.
- Végrehajtási módszerek:
execute(),executemany(), ésbatch_execute(). - Kapcsolati attribútumok a következőn keresztül:
set_attr()ésgetinfo(). - Kontextuskezelő támogatás.
Kurzor funkciók
- Szabványos behozási módszerek:
fetchone(),fetchmany(),fetchall(). - Kiterjesztett módszerek:
fetchval(),skip(). - Végrehajtási módszerek:
execute()ésexecutemany(). - Sorobjektumok attribútum- és indexhozzáféréssel.
- Navigálás több eredményhalmaz között a(z)
nextset()használatával.
Adattípus támogatása
- Minden SQL Server natív típus.
- Python↔SQL típusleképezések.
- SQL típus állandók explicit gépeléshez (például
mssql_python.SQL_DECIMAL). - NULL kezelése Python szerint
None.
Tranzakciótámogatás
- Manuális elköteleződés és visszahúzás.
- Automatikus véglegesítési mód.
- Izolációs szint vezérlése.
- Patthelyzet észlelése és kezelése.
Hitelesítési módok
| Mode | Leírás |
|---|---|
| SQL Server hitelesítés | Felhasználónév és jelszó |
| Windows authentication | Trusted_Connection |
| ActiveDirectoryDefault | DefaultAzureCredential |
| ActiveDirectoryInteractive | Böngészőalapú bejelentkezés |
| ActiveDirectoryDeviceCode | Az eszközkód beolvasási folyamata |
| ActiveDirectoryPassword | Microsoft Entra felhasználónév és jelszó (elavult; ROPC használja) |
| ActiveDirectoryMSI | Felügyelt identitás |
| ActiveDirectoryServicePrincipal | Szolgáltatási főelem |
| ActiveDirectoryIntegrated | Windows Kerberos |
Upgrade
pyodbc-től
Részletes migrációs útmutatóért lásd: Migrate from pyodbc.
Főbb különbségek:
- Mind
?a (qmark), mind%(name)sa (pyformat) paraméterstílusok támogatottak. A meglévő?lekérdezéseid változtatás nélkül működnek. - Nincs
callproc()módszer. HasználjEXECUTEhelyette állításokat. - Beépített csatlakozási csoportosítás.
- Nincs külső ODBC illezőprogramfüggőség.
A pymssql-ből
Részletes migrációs útmutatóért lásd: Migrate from pymssql.
Főbb különbségek:
- A paraméterjelölőket
%s%dvagy?-re cseréljük%(name)s. - Használj kapcsolati karakterlánc-et pozíciós argumentumok helyett.
- Nincs FreeTDS függőség.
- Több egyidejű kurzor egy kapcsolatonként.
- A
as_dict=Truehelyébe attribútumelérésű sorobjektumok lépnek.
mssql-python verziók között
Frissítsd a meghajtót, hogy új funkciókat és javításokat kapj.
pip install --upgrade mssql-python
A produkciós rendszerek frissítése előtt ellenőrizd a kiadási megjegyzéseket az esetleges kompatibilitást megszakító változások miatt.
Roadmap
A közelgő funkciókról és a fejlesztési ütemtervről lásd a GitHub repozitóriumot.