Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł wymienia, co zmieniło się w każdej wersji sterownika mssql-python, najpierw najnowsze. Każda sekcja obejmuje nowe funkcje, zmiany zachowań oraz poprawki błędów w jednej wersji.
Aby poznać wersje, które Microsoft obecnie wspiera, zobacz cykl życia wsparcia.
mssql-python 1.14.0
Data premiery: sierpień 2026
Enhancements
Wykrywanie parametrów i wiązanie uruchamiane w natywnym kodzie
Wykrywanie typów parametrów i wiązanie parametrów odbywają się teraz w ramach jednego natywnego potoku zamiast osobnych wywołań w Pythonie dla każdego parametru. Ta zmiana eliminuje istotne wąskie gardło wydajności, zapewniając większą poprawę przepustowości w całym procesie, zwłaszcza w większych operacjach, takich jak zbiorcze wstawianie. Nie jest potrzebna zmiana aplikacji.
Poprawki błędów
Argument timeout funkcji connect() ustawia limit czasu zapytania zamiast limitu czasu uwierzytelniania
Argument timeout teraz ustala SQL_ATTR_LOGIN_TIMEOUT i ogranicza próbę uwierzytelniania, co jest opisane w nazwie argumentu i dokumentacji. We wcześniejszych wersjach była to limitacja zapytań na każde zdanie, więc connect(timeout=30) nie ograniczała czasu trwania próby połączenia, a zapytania przerywano po 30 sekundach. Limit czasu zapytania dla każdej instrukcji pozostaje dostępny jako właściwość Connection.timeout.
Ważna
Jeśli przekazałeś timeout do connect(), aby przerwać długotrwałe zapytania, takie zachowanie już nie występuje. Zamiast tego ustaw Connection.timeout. To samo dotyczy sytuacji, gdy używasz connect(timeout=), aby wydłużyć limit czasu nawiązania połączenia, którego bulkcopy() używa do swojego połączenia wewnętrznego: ustaw Connection.timeout przed utworzeniem kursora.
Aby uzyskać więcej informacji, zobacz Limit czasu połączenia.
bulkcopy() odrzucone timeout=0
Wartość timeout parametru 0 spowodowała błąd walidacji, mimo że 0 oznacza brak limitu czasu w bazowym interfejsie API kopiowania zbiorczego. Metoda teraz akceptuje 0 i wyłącza limit czasu operacji. Wartości ujemne, niecałkowite i booleowskie są nadal odrzucane.
Więcej informacji można znaleźć w sekcji Kopia zbiorcza.
Operacja czyszczenia zastąpiła oryginalny wyjątek podczas pobierania z Arrow
Gdy pobieranie z czytnika Arrow kończyło się niepowodzeniem, procedura czyszczenia sterownika zgłaszała drugi błąd, który zastępował błąd pierwotny, przez co wywołujący widzieli błąd czyszczenia zamiast rzeczywistej przyczyny niepowodzenia pobierania. Proces czyszczenia teraz najpierw sprawdza stan kursora i zachowuje oryginalny wyjątek.
executemany() Błędy konwersji dziesiętnej obejmowały wartości parametrów
Awaria konwersji typu decimal w executemany() powodowała zgłoszenie problematycznej wartości za pośrednictwem wyjątku w łańcuchu, co mogło spowodować zapisanie danych klientów w logach aplikacji i systemach monitorowania. Błąd teraz raportuje tylko indeks wiersza, indeks kolumn oraz typ wartości.
Aby uzyskać więcej informacji, zobacz Obsługa błędów.
Zbiorcze kopiowanie odrzuconych typów Arrow View
bulkcopy_arrow() nie mógł obsługiwać tablic Arrow View o zmiennej długości, więc kolumny Polars string_view trzeba było najpierw przekonwertować za pomocą DataFrame.to_arrow(). Wartości String View i wartości NULL są teraz przekazywane bezpośrednio za pośrednictwem Arrow C Data Interface.
Więcej informacji można znaleźć w artykule integracja Polars.
Ładowanie rozszerzeń Windows wykorzystywało architekturę procesora hosta
W systemie Windows sterownik wybierał swoje natywne rozszerzenie na podstawie procesora hosta, a nie uruchomionego interpretera, więc Python x64 na hoście ARM64 był ładowany za pośrednictwem ścieżki rezerwowej i wypisywał komunikaty na standardowe wyjście (stdout). Moduł ładujący teraz określa architekturę na podstawie interpretera i zgłasza mechanizmy awaryjne jako ostrzeżenia.
mssql-python 1.13.0
Data premiery: sierpień 2026
Enhancements
Pliki binarne sterownika ODBC są dostarczane tylko w mssql-python-odbc
Wersja 1.13.0 usuwa awaryjne libs/ z koła mssql-python i deklaruje mssql-python-odbc==18.6.2.1 w install_requires. Komenda pip install mssql-python nadal generuje działający sterownik. Jawnie zainstaluj mssql-python-odbc podczas instalacji za pomocą --no-deps lub z prywatnego indeksu, który go nie odzwierciedla.
Aby uzyskać więcej informacji, zobacz Instalacja.
Kopia masowa ze źródeł Apache Arrow
Nowa cursor.bulkcopy_arrow() metoda ładuje dane już w formacie Apache Arrow, bez konieczności konwersji każdego wiersza na obiekty Python. Przepuszczenie źródła strzałki do bulkcopy() teraz podnosi TypeError.
Więcej informacji znajdziesz w sekcjach integracja Apache Arrow oraz kopiowanie zbiorcze.
token_provider parametr poświadczeń Microsoft Entra
Funkcja connect() i klasa Connection przyjmują argument token_provider, więc możesz przekazać obiekt poświadczeń, taki jak DefaultAzureCredential, zamiast określać tryb uwierzytelniania w parametrach połączenia. Ten argument nie może być używany jednocześnie ze słowem kluczowym Authentication ani z tokenami przekazywanymi przez attrs_before i obsługuje tylko zakres komercyjnej chmury Azure.
Aby uzyskać więcej informacji, zobacz Microsoft Entra authentication (Uwierzytelnianie w usłudze Microsoft Entra).
Pulowanie połączeń uwzględniające tożsamość
Pula połączeń teraz rozdziela połączenia na podstawie tożsamości Microsoft Entra. We wcześniejszych wersjach pula połączeń była indeksowana wyłącznie według parametrów połączenia, więc mogła przydzielić żądaniu wysłanemu przez jednego użytkownika połączenie uwierzytelnione jako inny użytkownik. Sterownik pobiera token również tylko wtedy, gdy żądanie połączenia nie zostanie obsłużone z puli, oraz odświeża połączenie z puli, gdy do wygaśnięcia jego tokenu pozostało mniej niż 5 minut.
Więcej informacji można znaleźć w artykule Pula połączeń.
Poprawki błędów
executemany() wstawiał 0 wierszy, gdy po pierwszym wierszu występowały wartości NULL
executemany() Wywołanie, w którym mieszano numeryczne wartości nie-NULL i NULL, nie wstawiało żadnych wierszy i nie zgłaszało wyjątku, gdy pierwszy NULL pojawiał się po pierwszym wierszu. To zachowanie wpływało na parametry tinyint, smallint, int i float . Sterownik teraz inicjalizuje wskaźniki ODBC dla każdego parametru numerycznego o stałej szerokości przed wykonaniem tablicy.
Konwerter SQL_WVARCHAR wyjściowy przekształcał kolumny niebędące ciągami znaków
Zarejestrowanie pojedynczego konwertera ciągu znaków powodowało także konwersję wartości int, decimal i date, ponieważ sterownik domyślnie używał konwertera SQL_WVARCHAR dla każdej kolumny, która nie miała własnego konwertera. Sterownik korzysta teraz z tego mechanizmu awaryjnego tylko wtedy, gdy odwzorowany typ Pythona dla kolumny to str lub bytes.
Konwertery wyjściowe zarejestrowane za pomocą liczbowego kodu typu SQL nigdy nie działały
Konwertery zarejestrowane przy użyciu całkowitoliczbowego kodu typu SQL, takie jak SQL_DECIMAL, były przechowywane, ale nigdy nie były wywoływane, ponieważ sterownik uwzględniał w cursor.description wyłącznie typ Pythona. Sterownik najpierw wysyła kod całkowitoliczbowy, potem typ Python, a następnie awaryjne.SQL_WVARCHAR
Ważna
Jeśli zarejestrowałeś konwertery za pomocą całkowitego kodu SQL we wcześniejszej wersji, te konwertery zaczynają działać po aktualizacji. Przejrzyj je przed wdrożeniem, ponieważ wartości kolumn, które wcześniej przechodziły bez zmian, są teraz przekształcone.
Więcej informacji można znaleźć w artykule Niestandardowe konwertery typów.
Zamknięcie czytnika Arrow nie uwalniało kursora po stronie serwera
Zamknięcie czytnika Arrow pozostawiało przydzielony kursor po stronie serwera oraz nadrzędny obiekt Cursor w niespójnym stanie, ponieważ cursor.arrow_reader() zwracał surowy pyarrow.RecordBatchReader. Metoda zwraca teraz obiekt opakowujący, którego metoda close() zwalnia kursor po stronie serwera i resetuje stan kursora, a obiekt ten działa również jako menedżer kontekstu.
Więcej informacji można znaleźć w artykule o integracji z Apache Arrow.
Częściowo zainicjalizowany kursor podniesiony AttributeError w Cursor.__del__
Kursor, którego inicjalizator zawiódł, wywoływał wyjątek AttributeError jako nie do podnieśienia podczas garbage collection.
Cursor.__init__ został zgłoszony, zanim ustawiono atrybuty closed i hstmt, które __del__ następnie próbował odczytać. Inicjalizator teraz ustawia oba atrybuty przed jakimkolwiek kodem, który może się podnieść, i __del__ chroni swoje wywołanie logowania, aby pozostać bezpieczne podczas wyłączania interpretera.
mssql-python 1.12.0
Data premiery: lipiec 2026
Enhancements
Samodzielny mssql-python-odbc pakiet towarzyszący
Pliki binarne sterownika ODBC są teraz publikowane osobno jako mssql-python-odbc, pomocniczy pakiet zawierający wyłącznie dane, przypisany do wersji 18.6.2. Nie musisz zmieniać żadnego kodu, bo pip install mssql-python instaluje się z nim pakiet towarzyszący. Natywny moduł ładujący najpierw wybiera pakiet towarzyszący, a jeśli nie jest on dostępny, używa plików binarnych dołączonych do pakietu mssql-python wheel.
Aby uzyskać więcej informacji, zobacz Instalacja.
Poprawki błędów
cursor.bulkcopy() używa teraz limitu czasu nawiązania połączenia połączenia nadrzędnego
bulkcopy() Teraz używa limitu czasu połączenia połączenia nadrzędnego, który ustawiasz za pomocą connect(..., timeout=<seconds>). Wcześniej oddzielne połączenie, które otwiera kopia masowa, wykorzystywało zakodowany na stałe 15-sekundowy limit połączenia, którego nie dało się obejść w Pythonie. Połączenie nadrzędne utworzone za pomocą timeout=0 nadal ma domyślną wartość 15 sekund.
Więcej informacji można znaleźć w sekcji Kopia zbiorcza.
cursor.bulkcopy() obsługuje kolumny typu CLR zdefiniowane przez użytkownika
cursor.bulkcopy() wcześniej kończył się niepowodzeniem z użyciem Protocol Error: Unsupported TDS type for bulk copy: 0xF0 w przypadku każdej kolumny docelowej korzystającej z typu zdefiniowanego przez użytkownika w środowisku CLR, w tym wbudowanych typów geography, geometry i hierarchyid. Sterownik teraz mapuje kolumny CLR UDT na varbinary(max) na przewodzie i przesyła dostarczone bajty jako ładunek IBinarySerialize UDT. Poprawka pojawia się w mssql_py_core wersji 0.1.7.
Więcej informacji znajduje się w artykułach Kopiowanie masowe i Mapowania typów danych.
mssql-python 1.11.0
Data premiery: lipiec 2026
Enhancements
Ulepszona semantyka menedżera kontekstu
with connection: teraz zatwierdza transakcję, gdy wykonywanie bloku kończy się bez błędów, a wycofuje ją, gdy wyjątek powoduje wyjście z bloku.
Aby uzyskać więcej informacji, zobacz Zarządzanie transakcjami.
Poprawki błędów
- Naprawiono zakleszczenie GIL w ścieżce zamykania ODBC (
conn.close()icursor.close()) oraz wSQLDescribeParamdla parametrów o wartościNonew konfiguracjach tunelu SSH i przekazywania w procesie. - Naprawiono parametry NULL
BINARYiVARBINARYw tabelach tymczasowych i zmiennych tabelowych. Gdy automatyczne określanie typu kończy się niepowodzeniem, sterownik generuje ostrzeżenie języka Python z jasnymi wskazówkamicursor.setinputsizes(). - Naprawiono problem z
import mssql_pythonna Apple Silicon przy czystej instalacji (regresja w wersji 1.8.0). Dołączone zależności ODBC dylib są teraz przepisywane ponownie dla architektur zarównoarm64, jak ix86_64. - Naprawiono zakleszczenie GIL w rdzeniu Rust, które powodowało zawieszanie się operacji kopiowania zbiorczego podczas uwierzytelniania za pomocą
Authentication=ActiveDirectoryServicePrincipal.
mssql-python 1.10.0
Data wydania: czerwiec 2026 r.
Enhancements
ActiveDirectoryServicePrincipal wsparcie dla kopiowania masowego
cursor.bulkcopy() obsługuje teraz Authentication=ActiveDirectoryServicePrincipal, więc możesz zbiorczo wstawiać dane za pomocą poświadczeń jednostki usługi.
Więcej informacji można znaleźć w artykule Kopiowanie zbiorcze i uwierzytelnianie Microsoft Entra.
Poprawki błędów
- Naprawiono obsługę danych niebędących ASCII
VARCHARiCHARw ścieżce pobierania Arrow. - Stałe przerwy połączeń podczas operacji ładowania masowego.
mssql-python 1.9.0
Data wydania: czerwiec 2026 r.
Enhancements
Obiekty wierszy w kopiowaniu zbiorczym
cursor.bulkcopy() teraz bezpośrednio akceptuje pobrane obiekty Row zamiast wymagać ręcznej konwersji krotek.
Aby uzyskać więcej informacji, zobacz Kopiowanie zbiorcze i Obiekty wierszy.
Poprawki błędów
- Obudowa z kółkami stałymi, więc
simdutfzawsze jest statycznie połączona. - Stałe duże
DECIMALwstawki wexecutemany(). - Naprawiono nieprawidłowe określanie typu zastępczego dla parametrów NULL.
- Naprawiono cykle serializacji i deserializacji wyjątków.
- Naprawiono
nextset(), aby zachowywałPRINTkomunikaty między zestawami wyników. - Poprawiono obsługę
Roww ścieżce awaryjnejexecutemany()data-at-execution. - Naprawiono sprawdzanie typów metody fetch dla narzędzi do analizy statycznej.
mssql-python 1.8.0
Data wydania: maj 2026 r.
Enhancements
Wsparcie ActiveDirectoryMSI dla kopiowania masowego
cursor.bulkcopy() obsługuje teraz Authentication=ActiveDirectoryMSI dla tożsamości zarządzanych przypisanych przez system i przez użytkownika.
Więcej informacji można znaleźć w artykule Kopiowanie zbiorcze i uwierzytelnianie Microsoft Entra.
Indeksowanie wierszy za pomocą klucza tekstowego
Teraz możesz uzyskać dostęp do wartości wierszy według nazwy kolumny, na przykład row["col"], oprócz indeksowania pozycyjnego i dostępu do atrybutów.
Więcej informacji można znaleźć w artykule Obiekty wierszowe.
Pakietowa aktualizacja sterownika ODBC
Dołączony sterownik Microsoft ODBC dla SQL Server został zaktualizowany do wersji 18.6.2.1.
Poprawki błędów
- Naprawiono problemy z odroczonym czasem życia atrybutów połączenia w uwierzytelnianiu opartym na tokenach.
- Naprawiono powtarzające się parsowanie parametry połączenia w ścieżce uwierzytelniania.
- Stałe
executemany()adnotacje typów dla wejść sekwencji.
mssql-python 1.7.1
Data wydania: maj 2026 r.
Enhancements
Rozszerzone pokrycie kół i poprawa osiągów
Ta wersja obejmuje:
- Felgi kompatybilne z RHEL 8.
- Przywróciłem koła macOS Python 3.10
universal2. - Ulepszono obsługę UTF-16 za pośrednictwem
simdutf. - Zoptymalizowana
execute()ścieżka gorąca.
Wpływ na wydajność: Przepustowość przetwarzania wsadowego poprawia się dzięki optymalizacjom krytycznej ścieżki w metodzie execute().
Aby uzyskać więcej informacji, zobacz Instalacja.
Poprawki błędów
- Naprawiono niepowodzenia uwierzytelniania, tak aby zgłaszały wyjątki DB-API
mssql_pythonzamiastRuntimeError. - Rozszerzono zwalnianie GIL podczas blokujących wywołań ODBC dotyczących wykonywania, pobierania, transakcji i atrybutów połączenia.
- Naprawiono
executemany()problemy występujące, gdy wartości dziesiętne zmieniają znak. - Naprawiono niespójne dekodowanie CP1252
VARCHARna różnych platformach. - Naprawiono
cursor.bulkcopy()niepowodzenia spowodowane pustymi ciągami w kolumnachNVARCHAR(MAX)iVARCHAR(MAX).
Note
Wersja 1.7.0 została wycofana z powodu problemów z publikacją. Użyj wersji 1.7.1 lub nowzej.
mssql-python 1.6.0
Data wydania: kwiecień 2026 r.
Enhancements
Oczyszczanie parametrów połączenia oparte na parserze
Sanityzacja łańcuchów połączeń obecnie wykorzystuje parser zamiast wyrażeń regularnych, więc ciągi połączeń zawierające specjalne znaki w polach hasła i wartości nawiasowe są poprawnie parsowane.
Aby uzyskać więcej informacji, zobacz Parametry połączenia.
Poprawki błędów
- Naprawiono zwolnienie GIL podczas blokowania operacji łączenia i rozłączania ODBC.
- Naprawiono awarie związane z
setinputsizes()oraz podpowiedziamiSQL_DECIMALiSQL_NUMERIC. - Naprawiono nieprawidłowe
fetchone()zachowanie metod katalogowych ODBC. - Naprawiono błędy nieprawidłowego stanu kursora, gdy używano
reset_cursor=False. - Stałe
executemany()wskazówki typu dla sekwencji parametrów opartych na mapowaniu. - Dodano ochronę przejścia ścieżki dla
setup_logging(log_file_path=...).
mssql-python 1.5.0
Data wydania: kwiecień 2026 r.
Nowe funkcje
Obsługa pobierania Apache Arrow
Trzy nowe metody kursorów zapewniają wysokowydajne pobieranie danych kolumnowych za pośrednictwem interfejsu danych Arrow C:
-
cursor.arrow()zwraca kompletnypyarrow.Table. -
cursor.arrow_batch()zwraca pojedynczypyarrow.RecordBatch. -
cursor.arrow_reader()zwracapyarrow.RecordBatchReaderdo przesyłania strumieniowego.
Te metody nie tworzą obiektu Python dla każdej wartości. Pełną dokumentację można znaleźć w artykule o integracji z Apache Arrow.
Obsługa typu sql_variant
Sterownik wykrywa teraz kolumny sql_variant podczas pobierania, ustala ich bazowy typ i zwraca wartości Pythona o poprawnym typie zamiast surowych bajtów.
Note
Kolumny sql_variant używają ścieżki strumieniowego pobierania danych, co może nieznacznie wpływać na wydajność w porównaniu z kolumnami o stałym typie.
Aby uzyskać więcej informacji, zobacz Mapowania typów danych.
Natywne wsparcie UUID
Nowe native_uuid ustawienie decyduje, czy UNIQUEIDENTIFIER kolumny są zwracane jako uuid.UUID obiekty (domyślnie), czy jako ciągi znaków wielkich liter zgodnych z pyodbc. Konfiguruj to na poziomie modułu lub dla każdego połączenia.
Więcej informacji można znaleźć w sekcji Konfiguracja modułu.
Publiczny eksport klasy rzędowej
Klasa Row jest teraz eksportowana na poziomie głównym na potrzeby adnotacji typów.
Więcej informacji znajdziesz w sekcji Obiekty wiersza.
Poprawki błędów
- Naprawiono fałszywe wykrycia
?w identyfikatorach ujętych w nawiasy, literałach łańcuchowych i komentarzach. - Naprawiono wiązanie parametrów NULL dla kolumn
VARBINARY(nie powoduje już błędów niejawnej konwersji). - Naprawiono problem utraty mikrosekund przez wartości
datetime.timepodczas konwersji tam i z powrotem w kolumnach odTIME(1)doTIME(7). - Naprawiono ścieżkę pobierania Arrow, aby poprawnie uwzględniała ułamki sekund dla kolumn
TIME. - Naprawiłem kopiowanie masowe za pomocą metod uwierzytelniania Microsoft Entra ID (przestarzałe pola poświadczeń nie powodują już błędów walidacji).
- Buforowano instancje poświadczeń Azure Identity na poziomie modułu w celu zwiększenia wydajności uwierzytelniania.
mssql-python 1.4.0
Data wydania: lutego 2026
Nowe funkcje
Wsparcie dla kopiowania masowego
Wysokowydajne zbiorcze ładowanie danych jest teraz dostępne za pośrednictwem cursor.bulkcopy(). Metoda akceptuje opcje dla batch_size, timeout, column_mappings, keep_identity, check_constraints, table_lock, keep_nulls, fire_triggersoraz .use_internal_transaction
Więcej informacji można znaleźć w sekcji Kopia zbiorcza.
Ulepszenia
- Optymalizacje wydajności dla dużych zbiorów wyników.
- Zmniejszone zużycie pamięci podczas operacji wsadowych.
- Ulepszone komunikaty o błędach dotyczące niepowodzeń podczas kopiowania zbiorczego.
mssql-python 1.3.0
Data premiery: styczeń 2026
Nowe funkcje
Klasa ustawień
Skonfiguruj zachowanie całego modułu za pomocą nowej klasy Settings, która zawiera ustawienie lowercase dla nazw kolumn w cursor.description.
Więcej informacji można znaleźć w sekcji Konfiguracja modułu.
Ulepszenia
- Lepsza obsługa limitu czasu połączenia podczas przełączania awaryjnego Azure SQL.
- Poprawa kompatybilności z Python 3.13.
MSSQL-Python 1.2.0
Data premiery: styczeń 2026
Nowe funkcje
Metody odkrywania schematów
Nowe metody kursora badają metadane bazy danych: tables(), , primaryKeys()columns(), foreignKeys(), procedures(), , statistics()oraz getTypeInfo().
Więcej informacji można znaleźć w sekcji odkrywanie schematów.
Ulepszenia
- Ulepszone buforowanie metadanych dla powtarzających się zapytań schematów.
- Lepsza obsługa kolumn obliczeniowych w wynikach
columns().
mssql-python 1.1.0
Data premiery: grudzień 2025
Nowe funkcje
Niestandardowe przetworniki wyjściowe
Rejestruj niestandardowe funkcje do przekształcania wartości kolumn w trakcie pobierania za pomocą add_output_converter(), get_output_converter(), remove_output_converter() i clear_output_converters().
Aby uzyskać więcej informacji, zobacz Niestandardowe konwertery typów.
Ulepszenia
- Lepsze komunikaty o błędach przy niepowodzeniach konwersji typów.
- Obsługa funkcji konwerterów zwracających
None.
MSSQL-Python 1.0.0
Data premiery: listopad 2025
Pierwsze wydanie GA
Pierwsza ogólnodostępna wersja mssql-python, natywnego sterownika Python Microsoft dla SQL Server.
Więcej informacji można znaleźć w sterowniku mssql-python.
Podstawowe funkcje
- Architektura DDBC: Bezpośrednia łączność z bazą danych bez konieczności instalacji sterownika ODBC.
- Zgodność z DB-API 2.0: Standardowy interfejs bazy danych języka Python.
- Pulowanie połączeń: Wbudowane zarządzanie pulą połączeń.
- Uwierzytelnianie Microsoft Entra: Pełna obsługa uwierzytelniania opartego na tożsamości platformy Azure.
- Szyfrowanie TLS: Bezpieczne połączenia dzięki walidacji certyfikatów.
Funkcje połączenia
- 21 słów kluczowych ciągu połączenia
- 9 trybów uwierzytelniania (SQL, Windows oraz 7 metod Microsoft Entra ID).
- Sterowanie trybem autocommit.
- Metody wykonania:
execute(),executemany(), orazbatch_execute(). - Atrybuty połączenia za pomocą
set_attr()igetinfo(). - Wsparcie dla menedżera kontekstu.
Funkcje kursora
- Standardowe metody pobierania:
fetchone(),fetchmany(), .fetchall() - Metody rozszerzone:
fetchval(), .skip() - Metody wykonania:
execute()orazexecutemany(). - Obiekty wierszowe z dostępem do atrybutów i indeksów.
- Nawigacja po wielu zestawach wyników za pomocą
nextset().
Obsługa typów danych
- Wszystkie natywne typy SQL Server.
- Mapowania typu Python ↔SQL.
- Stałe typu SQL do typowania jawnego (na przykład
mssql_python.SQL_DECIMAL). - Obsługa wartości NULL jak w Pythonie
None.
Obsługa transakcji
- Ręczne zatwierdzanie i wycofywanie.
- Tryb automatycznego zatwierdzania zmian.
- Kontrola poziomu izolacji.
- Wykrywanie i obsługa zakleszczeń.
Tryby uwierzytelniania
| Mode | Opis |
|---|---|
| Uwierzytelnianie programu SQL Server | Nazwa użytkownika i hasło |
| uwierzytelnianie Windows | Trusted_Connection |
| ActiveDirectoryDefault | DefaultAzureCredential |
| ActiveDirectoryInteractive | Logowanie przez przeglądarkę |
| ActiveDirectoryDeviceCode | Przepływ kodu urządzenia |
| ActiveDirectoryPassword | Microsoft Entra — nazwa użytkownika i hasło (przestarzałe; używa ROPC) |
| ActiveDirectoryMSI | Tożsamość zarządzana |
| ActiveDirectoryServicePrincipal | Główna usługa |
| ActiveDirectoryIntegrated | Windows Kerberos |
Upgrade
Z pyodbc
Szczegółowe wskazówki dotyczące migracji znajdują się w artykule Migrate from pyodbc.
Kluczowe różnice:
- Obsługiwane są zarówno style parametrów
?(qmark), jak i%(name)s(pyformat). Twoje istniejące?zapytania działają bez zmian. - Brak metody
callproc(). Zamiast tego używaj instrukcjiEXECUTE. - Wbudowane łączenie połączeń.
- Brak zewnętrznej zależności sterownika ODBC.
Z pymssql
Szczegółowe wskazówki dotyczące migracji znajdziesz w artykule Migrate from pymssql.
Kluczowe różnice:
- Zastąp
%si%dmarkery parametrów na?lub%(name)s. - Zamiast argumentów pozycyjnych używaj parametry połączenia.
- Brak zależności od FreeTDS.
- Wiele współbieżnych kursorów na połączenie.
- Obiekty wierszowe z dostępem do atrybutów zastępują
as_dict=True.
Między wersjami mssql-python
Zaktualizuj sterownik, aby uzyskać nowe funkcje i poprawki.
pip install --upgrade mssql-python
Sprawdź notatki do wydania pod kątem jakichkolwiek drobnych zmian przed aktualizacją systemów produkcyjnych.
Roadmap
Nadchodzące funkcje i plan rozwoju znajdziesz w repozytorium GitHub.