Co nowego w mssql-python

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() i cursor.close()) oraz w SQLDescribeParam dla parametrów o wartości None w konfiguracjach tunelu SSH i przekazywania w procesie.
  • Naprawiono parametry NULL BINARY i VARBINARY w tabelach tymczasowych i zmiennych tabelowych. Gdy automatyczne określanie typu kończy się niepowodzeniem, sterownik generuje ostrzeżenie języka Python z jasnymi wskazówkami cursor.setinputsizes().
  • Naprawiono problem z import mssql_python na 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ówno arm64, jak i x86_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 VARCHAR i CHAR w ś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 simdutf zawsze jest statycznie połączona.
  • Stałe duże DECIMAL wstawki w executemany().
  • Naprawiono nieprawidłowe określanie typu zastępczego dla parametrów NULL.
  • Naprawiono cykle serializacji i deserializacji wyjątków.
  • Naprawiono nextset(), aby zachowywał PRINT komunikaty między zestawami wyników.
  • Poprawiono obsługę Row w ścieżce awaryjnej executemany() 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.10universal2.
  • 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_python zamiast RuntimeError.
  • 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 VARCHAR na różnych platformach.
  • Naprawiono cursor.bulkcopy() niepowodzenia spowodowane pustymi ciągami w kolumnach NVARCHAR(MAX) i VARCHAR(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 podpowiedziami SQL_DECIMAL i SQL_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 kompletny pyarrow.Table.
  • cursor.arrow_batch() zwraca pojedynczy pyarrow.RecordBatch.
  • cursor.arrow_reader() zwraca pyarrow.RecordBatchReader do 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.time podczas konwersji tam i z powrotem w kolumnach od TIME(1) do TIME(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(), oraz batch_execute().
  • Atrybuty połączenia za pomocą set_attr() i getinfo().
  • Wsparcie dla menedżera kontekstu.

Funkcje kursora

  • Standardowe metody pobierania: fetchone(), fetchmany(), . fetchall()
  • Metody rozszerzone: fetchval(), . skip()
  • Metody wykonania: execute() oraz executemany().
  • 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 instrukcji EXECUTE.
  • 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 %s i %d markery 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.