mssql-python'da ne yenilikler var

mssql-python sürücüsünün her sürümü yeni özellikler, performans iyileştirmeleri ve hata düzeltmeleri getirir. Aşağıdaki bölümler her versiyonu detaylandırmaktadır.

MSSQL-python 1.12.0

Çıkış tarihi: Temmuz 2026

Geliştirmeler

Bağımsız mssql-python-odbc eşlik paketi

mssql-python’un çalışma zamanında ihtiyaç duyduğu ODBC sürücüsü ikili dosyaları artık ayrı, yalnızca veri içeren bir yardımcı paket olarak da yayımlanıyor: mssql-python-odbc (içe aktarma adı mssql_python_odbc, şu anda 18.6.2 sürümüne sabitlenmiş). mssql-python paketi, install_requires içinde mssql-python-odbc==18.6.2’i bildirir; böylece pip install mssql-python, eşlik eden paketi onunla birlikte otomatik olarak yükler. Kod değişikliği gerekmez.

Yerel yükleyici, mevcut olduğunda harici mssql_python_odbc paketini tercih eder; mevcut olmadığında ise mssql-python wheel’ının içinde hâlâ paketlenmiş ODBC ikili dosyalarını kullanır. Yedek yöntem Python Global Interpreter Lock (GIL) ile güvenlidir ve Alpine gibi musl tabanlı Linux dağıtımlarında çalışır.

Bu bölünme, sürücü ikili dosyalarını Python kodundan bağımsız olarak sabitlemenize veya güncellemenize olanak tanır, yeniden dağıtıcılara zamanla daha küçük mssql-python bir tekerlek sağlar ve paketlenmiş ODBC dosyalarından kaynaklanan tekrarlayıcı sahiplik sorunlarını önler.

Önemli

Bu, gemileri kesintisiz bir değişiklik olmadan böldü. Gelecekteki bir ana sürümde (v2.0.0), paketle birlikte gelen libs/ ağacı kaldırılabilir; bu durumda mssql-python-odbc, çalışma zamanında zorunlu bir gereksinim hâline gelir.

Hata düzeltmeleri

cursor.bulkcopy() artık üst bağlantının bağlantı zaman aşımı süresini kullanıyor

Toplu kopyalama işlemi, mssql_py_core yerel uzantısı aracılığıyla ayrı bir bağlantı açar. Daha önce, bu işlem her zaman sabit kodlanmış 15 saniyelik bağlantı zaman aşımına sahip ve Python'dan geçersiz hale gelme imkânı yoktu. Eğer ana bağlantıda (connect(..., timeout=<seconds>)), bağlantı zaman aşımını belirlerseniz, bulkcopy() bu değeri dahili bağlantıya iletiyor. timeout=0 olarak ayarlamak, geçersiz kılmama davranışını korur ve dahili 15 saniyelik varsayılanı sürdürür. Çağrı anında bulkcopy() imlecin zaman aşımlaması işlem için kullanılır, bu yüzden ana bağlantıdaki sonraki değişiklikler uçuş sırasında toplu kopyayı etkilemez.

Aşağıdaki örnek, Production.Culture örnek veritabanından arama tablosunu kullanır. Ortamınız için bağlantı dizesi ve veritabanı adını ayarlayın:

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() CLR kullanıcı tanımlı tip sütunlarını destekler

Daha önce, cursor.bulkcopy(), yerleşik geography, geometry ve hierarchyid türleri ile derlemeye kaydedilmiş herhangi bir özel CLR UDT dahil olmak üzere, ortak dil çalışma zamanı (CLR) kullanıcı tanımlı türü kullanan herhangi bir hedef sütun için Protocol Error: Unsupported TDS type for bulk copy: 0xF0 ile başarısız olurdu. Yerel mssql_py_core yolunda, UDT türü belirteci (0xF0) için bir işleyici yoktu ve herhangi bir satır gönderilmeden önce, sütun meta verileri yazılırken hata verdi. CLR UDT sütunları artık iletişimde varbinary(max) olarak eşlenir ve sağlanan baytlar, pyodbc ile python-tds'ün UDT sütunlarını yükleme biçimiyle uyumlu olarak, UDT'nin IBinarySerialize yükü şeklinde akışa alınır. SQL Server, UDT'yi insert sırasında gerçekleştirir. mssql_py_core 0.1.6'dan 0.1.7'ye yükseltme ile sunuldu.

Aşağıdaki örnek, org-chart sütununu HumanResources.Employee (SQL Server'ın yerleşik CLR UDT'lerinden biri olan hiyerarşi sütunundan) yeni bir tabloya arşivler. Gerçek bir iş akışında, UDT baytları başka bir SQL Server örneğinden, seri dosyadan veya CLR tipinizin IBinarySerialize.Write() çıktısından gelebilir; bu örnek, bunları mevcut bir sütundan okurCAST(... AS varbinary(max)), böylece örnek kendi içinde kalır. Toplu kopyalama, OrganizationNode değeri NULL olan satırı içerir:

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")

Özel, derlemeye kaydedilmiş bir CLR UDT için hedef tablodaki türü kullanın ve türün IBinarySerialize.Write() yöntemi tarafından üretilen baytları sağlayın.

mssql-python 1.11.0

Çıkış tarihi: Temmuz 2026

Geliştirmeler

Geliştirilmiş bağlam yöneticisi semantiği

with connection: artık işlemleri sorunsuz çıkışta doğru şekilde onaylar ve bir istisna durumunda geri alır; böylece davranışı Python’a daha uygun ve daha öngörülebilir olur.

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

Hata düzeltmeleri

  • ODBC kapatma yolunda (conn.close() ve cursor.close()) ve SSH tüneli ile süreç içi yönlendirici yapılandırmalarında, SQLDescribeParam değerine sahip parametreler için None içindeki GIL kilitlenmesi düzeltildi.
  • Geçici tablolarda ve tablo değişkenlerinde sabit BINARY ve VARBINARY NULL parametreler. Otomatik tip çözümlemesi başarısız olduğunda, sürücü artık açık cursor.setinputsizes() rehberlikle bir Python uyarısı gönderir.
  • Apple Silicon’da temiz kurulumda import mssql_python oluşan hata düzeltildi (1.8.0’daki bir regresyon). Paketlenmiş ODBC dylib bağımlılıkları artık hem arm64 hem de x86_64 mimariler için yeniden yazılmıştır.
  • Authentication=ActiveDirectoryServicePrincipal ile kimlik doğrulaması yapılırken toplu kopyalama işlemlerinin donmasına neden olan Rust çekirdeğindeki bir GIL kilitlenmesi giderildi.

mssql-python 1.10.0

Yayın tarihi: Haziran 2026

Geliştirmeler

ActiveDirectoryServicePrincipal toplu kopyalama desteği

cursor.bulkcopy() artık Authentication=ActiveDirectoryServicePrincipal destekliyor ve hizmet sorumlusu kimlik bilgilerini kullanarak toplu ekleme yapılmasına olanak tanıyor.

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")

Hata düzeltmeleri

  • Arrow getirme yolundaki ASCII dışı VARCHAR ve CHAR veriler düzeltildi.
  • Toplu yükleme işlemleri sırasında bağlantı zaman aşımları düzeltildi.

mssql-python 1.9.0

Yayın tarihi: Haziran 2026

Geliştirmeler

Toplu kopyalamada satır nesneleri

cursor.bulkcopy() Artık alınan Row nesneleri doğrudan kabul eder, manuel tuple dönüşümü gerektirmez.

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")

Hata düzeltmeleri

  • Sabit tekerlek ambalajı olduğu için simdutf her zaman statik bağlantılıdır.
  • DECIMAL içindeki büyük executemany() eklemeleri düzeltildi.
  • NULL parametreler için yanlış tür geri dönüşü düzeltildi.
  • İstisnaların pickle ve unpickle işlemlerindeki gidiş-dönüş sorunu düzeltildi.
  • nextset(), sonuç kümeleri arasında PRINT iletilerini koruyacak şekilde düzeltildi.
  • Veri-yürütme sırasında geri dönüş yolunda Row işleme düzeltildiexecutemany().
  • Statik analiz araçları için fetch yönteminin tür denetimi düzeltildi.

MSSQL-python 1.8.0

Yayın tarihi: Mayıs 2026

Geliştirmeler

ActiveDirectoryMSI toplu kopyalama desteği

cursor.bulkcopy() Artık sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikleri destekler Authentication=ActiveDirectoryMSI .

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")

Satır dize anahtarlı indeksleme

Artık satır değerlerine sütun adıyla erişebilirsiniz, örneğin row["col"], pozisyonsal indeksleme ve öznitelik erişimine ek olarak.

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

Paketlenmiş ODBC sürücü yükseltmesi

Pakette bulunan Microsoft ODBC Driver for SQL Server, 18.6.2.1 sürümüne güncellendi.

Hata düzeltmeleri

  • Token tabanlı kimlik doğrulamada ertelenmiş bağlantı-öznitelik ömür sorunları düzeltildi.
  • Kimlik doğrulama yolunda tekrarlanan bağlantı dizesi ayrıştırması düzeltildi.
  • Dizi girişleri için sabit executemany() tip notasyonlar.

mssql-python 1.7.1

Yayın tarihi: Mayıs 2026

Geliştirmeler

Genişletilmiş tekerlek kapsama alanı ve performans iyileştirmeleri

Bu sürüm, RHEL 8 uyumlu tekerlekler ekliyor, macOS Python 3.10 universal2 tekerleklerini geri getiriyor, UTF-16 yönetimini , simdutfile iyileştiriyor ve sıcak yolu optimize execute() ediyor.

Performans etkisi: Yöntemdeki execute() sıcak yol optimizasyonları sayesinde toplu yürütme verimliliği tipik iş yüklerinde ~15% artıyor.

Hata düzeltmeleri

  • Oturum açma başarısızlıkları, mssql_python yerine RuntimeError DB-API istisnaları oluşturacak şekilde düzeltildi.
  • ODBC yürütme, getirme, işlem ve bağlantı özniteliği çağrılarını engelleyen genişletilmiş GIL yayını.
  • Ondalık değerler işaret değiştirdiğinde oluşan executemany() hatalar düzeltildi.
  • Platformlar arasında tutarsız olan CP1252 VARCHAR kod çözümlemesi düzeltildi.
  • cursor.bulkcopy() ve NVARCHAR(MAX) sütunlarındaki boş dizeler için VARCHAR(MAX) hataları düzeltildi.

Note

Sürüm 1.7.0, yayın sorunları nedeniyle geri çekildi. 1.7.1 veya daha sonrasını kullanın.

MSSQL-python 1.6.0

Yayın tarihi: Nisan 2026

Geliştirmeler

Parser tabanlı bağlantı dizesi temizleme

Bu geliştirme, şifre alanlarındaki özel karakterlerin ve destekli değerlerin doğru ayrıştırılmasını sağlar.

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"
)

Bağlantı dizesi temizleme işlemi, ODBC bağlantı dizesi söz diziminin doğru şekilde işlenmesi için normal ifade tabanlı mantıktan ayrıştırıcı tabanlı işleme geçirildi.

Hata düzeltmeleri

  • ODBC bağlantı ve bağlantı kesme işlemlerini engelleyen durumlarda GIL’in serbest bırakılması düzeltildi.
  • setinputsizes() SQL_DECIMAL ve SQL_NUMERIC ipuçlarıyla ilgili çökmeler düzeltildi.
  • ODBC katalog yöntemleri için yanlış fetchone() davranış düzeltildi.
  • reset_cursor=False kullanıldığında oluşan geçersiz imleç durumu hataları düzeltildi.
  • Haritalama tabanlı parametre dizileri için sabit executemany() tip ipuçları.
  • için bir yol geçiş koruması setup_logging(log_file_path=...)eklendi.

mssql-python 1.5.0

Yayın tarihi: Nisan 2026

Yeni özellikler

Apache Arrow destek getir

Üç yeni imleç yöntemi, Arrow C Veri Arayüzü üzerinden yüksek performanslı sütunlu veri alımını sağlar:

  • cursor.arrow() tam bir pyarrow.Table döndürür.
  • cursor.arrow_batch(), tek bir pyarrow.RecordBatch döndürür.
  • cursor.arrow_reader(), akış için bir pyarrow.RecordBatchReader döndürür.

Uygulama, performansı artırmak için sıcak yolda Python nesne oluşturmayı atlar. Tam dokümantasyon için Apache Arrow entegrasyonuna bakınız.

sql_variant türü desteği

Sürücü artık veri getirme sırasında sql_variant sütunlarını algılar, dayandıkları temel veri türünü belirler ve ham baytlar yerine doğru türde Python değerleri döndürür.

Note

sql_variant sütunları, sabit tipli sütunlara kıyasla performansı biraz etkileyebilen akış tabanlı bir getirme yolu kullanır.

Yerel UUID desteği

Yeni bir native_uuid ayarı, UNIQUEIDENTIFIER sütunlarının uuid.UUID nesneleri (varsayılan) olarak mı yoksa pyodbc ile uyumlu büyük harfli dizeler olarak mı döndürüleceğini kontrol eder. Modül seviyesinde veya bağlantı başına yapılandırın:

# 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)

Daha fazla bilgi için Modül yapılandırması bölümünü inceleyebilirsiniz.

Sıra sınıfı kamu ihracatı

Row sınıfı artık tür ek açıklamaları için üst düzeyde dışa aktarılıyor:

from mssql_python import Row

Hata düzeltmeleri

  • Parantezli tanımlayıcılar, dize değişmezleri ve yorumlar içindeki yanlış pozitif ? algılaması düzeltildi.
  • VARBINARY sütunları için NULL parametre bağlama düzeltildi (artık örtük dönüştürme hatalarına neden olmuyor).
  • datetime.time ile TIME(1) arasındaki sütunlar için, TIME(7) değerlerinin gidiş-dönüşlerde mikrosaniyeleri kaybetmesi düzeltildi.
  • TIME sütunları için kesirli saniyelerin doğru şekilde dahil edilmesini sağlamak üzere Arrow alma yolu düzeltildi.
  • Microsoft Entra ID kimlik doğrulama yöntemleriyle toplu kopyalama düzeltildi (eski kimlik bilgileri alanları artık doğrulama hatalarına yol açmıyor).
  • Kimlik doğrulama performansını artırmak için Azure Identity kimlik bilgisi örnekleri modül düzeyinde önbelleğe alındı.

MSSQL-python 1.4.0

Çıkış tarihi: Mart 2025

Yeni özellikler

Toplu kopya desteği

Yüksek performanslı toplu veri yükleme artık cursor.bulkcopy() aracılığıyla kullanılabilir:

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")

Yöntem, batch_size, timeout, column_mappings, keep_identity, check_constraints, table_lock, keep_nulls, fire_triggers ve use_internal_transaction için seçenekleri kabul eder.

Tam dokümantasyon için Toplu kopyaya bakınız.

Improvements

  • Büyük sonuç kümeleri için performans optimizasyonları.
  • Toplu işlemler sırasında bellek kullanımı azaldı.
  • Toplu kopyalama hataları için geliştirilmiş hata mesajları.

mssql-python 1.3.0

Çıkış tarihi: Ocak 2025

Yeni özellikler

Ayarlar sınıfı

Yeni Settings sınıf üzerinden modül genelinde davranışı yapılandırmak:

import mssql_python

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

Ayrıntılar için Modül yapılandırmasına bakın.

Improvements

  • Azure SQL failover sırasında bağlantı zaman aşımının daha iyi yönetilmesi.
  • Python 3.13 ile geliştirilmiş uyumluluk.

MSSQL-python 1.2.0

Çıkış tarihi: Kasım 2024

Yeni özellikler

Şema keşif yöntemleri

Veritabanı meta veri keşfi için yeni imleç yöntemleri:

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()

Tam dokümantasyon için Şema keşfine bakınız.

Improvements

  • Tekrarlanan şema sorguları için geliştirilmiş meta veri önbelleği.
  • columns() sonuçlarında hesaplanan sütunlar için daha iyi işleme

MSSQL-python 1.1.0

Çıkış tarihi: Eylül 2024

Yeni özellikler

Özel çıkış dönüştürücüleri

Veri getirme sırasında sütun değerlerini dönüştürmek için özel işlevleri kaydedin:

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)

Yönetim yöntemleri:

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

Tam dokümantasyon için bkz. Özel tip dönüştürücüler.

Improvements

  • Tip dönüşümü hataları için daha iyi hata mesajları.
  • None döndüren dönüştürücü işlevler için destek.

MSSQL-python 1.0.0

Çıkış tarihi: Temmuz 2024

İlk GA sürümü

Microsoft'un SQL Server için yerel Python sürücüsü olan mssql-python'un ilk genel erişilebilir sürümü.

Temel özellikler

  • DDBC mimarisi: ODBC sürücü kurulumu gerektirmeden doğrudan veritabanı bağlantısı.
  • DB-API 2.0 uyumluluğu: Standart Python veritabanı arayüzü.
  • Bağlantı havuzlama: Yerleşik bağlantı havuzu yönetimi.
  • Microsoft Entra doğrulama: Azure kimlik tabanlı kimlik doğrulama için tam destek.
  • TLS şifreleme: Sertifika doğrulama ile güvenli bağlantılar.

Bağlantı özellikleri

  • 21 bağlantı dizesi anahtar kelimesi.
  • 9 kimlik doğrulama modu (SQL, Windows ve 7 Microsoft Entra ID yöntemi).
  • Otomatik kaydetme denetimi.
  • Uygulama yöntemleri: execute(), executemany(), ve batch_execute().
  • set_attr() ve getinfo() aracılığıyla bağlantı özellikleri.
  • Bağlam yöneticisi desteği.

İmleç özellikleri

  • Standart getirme yöntemleri: fetchone(), fetchmany(), fetchall().
  • Genişletilmiş yöntemler: fetchval(), skip().
  • Uygulama yöntemleri: execute() ve executemany().
  • Öznitelik ve indeks erişimine sahip satır nesneler.
  • Birden çok sonuç kümesinde nextset() ile gezinme.

Veri türü desteği

  • Tüm SQL Server yerel tipleri.
  • Python↔SQL tür eşlemeleri.
  • Açık tipleme için SQL tip sabitleri (örneğin, mssql_python.SQL_DECIMAL).
  • Python None olarak NULL işleme.

İşlem desteği

  • El ile kesinleştirme ve geri alma.
  • Otomatik kesinleştirme modu.
  • İzolasyon seviyesi kontrolü.
  • Kilitlenme tespiti ve giderme.

Kimlik doğrulama modları

Mode Açıklama
SQL Server kimlik doğrulaması Kullanıcı adı ve parola
Windows kimlik doğrulaması Trusted_Connection
ActiveDirectoryDefault DefaultAzureCredential
ActiveDirectoryInteractive Tarayıcı tabanlı giriş
ActiveDirectoryDeviceCode Cihaz kodu akışı
Active Directory Parolası Microsoft Entra kullanıcı adı ve şifresi (kullanımdan kaldırılmıştır; ROPC kullanır)
ActiveDirectoryMSI İdare edilen kimlik
ActiveDirectoryServicePrincipal Servis Principal
ActiveDirectoryIntegrated Windows Kerberos

Upgrade

pyodbc'den

Ayrıntılı geçiş yönergeleri için pyodbc'den geçiş yapma bölümüne bakın.

Önemli farklar:

  • Hem ? (qmark) hem de %(name)s (pyformat) parametre stilleri desteklenmektedir. Mevcut ? sorgularınız değişmeden çalışıyor.
  • callproc() yöntem yok. Bunun yerine EXECUTE komutlarını kullanın.
  • Yerleşik bağlantı havuzlaması.
  • Harici ODBC sürücü bağımlılığı yok.

pymssql'den

Detaylı göç rehberliği için bkz. Migrate from pymssql.

Önemli farklar:

  • Parametre işaretleyicilerini %s%d veya ?ile değiştirin%(name)s.
  • Konumsal argümanlar yerine bağlantı dizesi kullanın.
  • FreeTDS bağımlılığı yok.
  • Her bağlantı için birden fazla eşzamanlı imleç.
  • Öznitelik erişimine sahip satır nesneleri, as_dict=True öğesinin yerini alır.

mssql-python sürümleri arasında

Sürücüyü yükselterek yeni özellikler ve düzeltmeler elde edin.

pip install --upgrade mssql-python

Üretim sistemlerini yükseltmeden önce geriye dönük uyumluluğu bozan değişiklikler olup olmadığını öğrenmek için sürüm notlarını kontrol edin.

Yol Haritası

Yaklaşan özellikler ve geliştirme yol haritası için GitHub deposuna bakınız.