Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
OLE DB sürücüsünü indirme
SQL Server için Microsoft OLE DB Sürücüsü (sürüm 18.2.1), UTF-8 sunucu kodlaması için destek ekler. SQL Server UTF-8 desteği hakkında bilgi için bkz:
Sürücünün 18.4.0 sürümü UTF-8 istemci kodlaması için destek ekler (Windows 10 ve Windows 11'de Bölge Ayarları altında "Dünya çapında dil desteği için Unicode UTF-8 kullan" onay kutusuyla etkinleştirilir).
Uyarı
SQL Server için Microsoft OLE DB Sürücüsü, DBTYPE_STR giriş arabelleğinin kodlamasını belirlemek için GetACP işlevini kullanır.
GetACP'nin UTF-8 kodlaması döndürdüğü senaryolar (Windows 10 ve Windows 11'de Bölge Ayarları altındaki "Dünya çapında dil desteği için Unicode UTF-8 kullan" onay kutusuyla etkinleştirildi) sürüm 18.4'den itibaren desteklenir. Önceki sürümlerde, arabelleğin Unicode verilerini depolaması gerekiyorsa arabellek veri türü DBTYPE_WSTR (UTF-16 kodlanmış) olarak ayarlanmalıdır.
UTF-8 kodlamalı CHAR veya VARCHAR sütununa veri ekleme
Ekleme için bir giriş parametresi arabelleği oluşturulurken, arabellek DBBINDING yapıları dizisi kullanılarak açıklanır. Her DBBINDING yapısı, tek bir parametreyi tüketicinin arabelleğiyle ilişkilendirir ve veri değerinin uzunluğu ve türü gibi bilgileri içerir. CHAR türünde bir giriş parametresi arabelleği için DBBINDING yapısının wType değeri DBTYPE_STR olarak ayarlanmalıdır. WCHAR türünde bir giriş parametresi arabelleği için DBBINDING yapısının wType değeri DBTYPE_WSTR olarak ayarlanmalıdır.
Bir komutu parametrelerle yürütürken, sürücü parametre veri türü bilgilerini oluşturur. Giriş arabellek türü ve parametre veri türü eşleşiyorsa, sürücüde dönüştürme yapılmaz. Aksi takdirde, sürücü giriş parametresi arabelleği parametre veri türüne dönüştürür. Parametre veri türü, ICommandWithParameters::SetParameterInfo çağrılarak kullanıcı tarafından açıkça ayarlanabilir. Bilgiler sağlanmazsa, sürücü parametre veri türü bilgilerini (a) deyim hazırlandığında sunucudan sütun meta verilerini alarak veya (b) giriş parametresi veri türünden varsayılan dönüştürmeyi deneyerek türetir.
Giriş parametresi arabelleği, giriş arabelleği veri türüne ve parametre veri türüne bağlı olarak sürücü veya sunucu tarafından sunucu sütun harmanlamasına dönüştürülebilir. Dönüştürme sırasında, istemci kodu sayfası veya veritabanı harmanlama kodu sayfası giriş arabelleğindeki tüm karakterleri gösteremiyorsa veri kaybı oluşabilir. Aşağıdaki tabloda UTF-8 etkin bir sütuna veri eklerken dönüşüm süreci açıklanmaktadır.
| Arabellek veri türü | Parametre veri türü | Conversion | Kullanıcı önlemi |
|---|---|---|---|
| DBTYPE_STR | DBTYPE_STR | İstemci kodu sayfasından veritabanı harmanlama kodu sayfasına sunucu dönüştürme; veritabanı harmanlama kodu sayfasından sütun harmanlama kodu sayfasına sunucu dönüştürme. | İstemci kodu sayfasının ve veritabanı harmanlama kodu sayfasının giriş verilerindeki tüm karakterleri temsil ebildiğinden emin olun. Örneğin, Lehçe karakter eklemek için istemci kodu sayfası 1250 (ANSI Orta Avrupa) olarak ayarlanabilir ve veritabanı harmanlaması harmanlama göstergesi olarak Lehçe kullanabilir (örneğin, Polish_100_CI_AS_SC) veya UTF-8 etkin olabilir. |
| DBTYPE_STR | DBTYPE_WSTR | İstemci kod sayfasından UTF-16 kodlamasına sürücü dönüşümü; sunucu dönüşümü UTF-16 kodlamasından sütun harmanlama kod sayfasına. | İstemci kodu sayfasının giriş verilerindeki tüm karakterleri gösterediğinden emin olun. Örneğin, Lehçe karakter eklemek için istemci kodu sayfası 1250 (ANSI Orta Avrupa) olarak ayarlanabilir. |
| DBTYPE_WSTR | DBTYPE_STR | UTF-16 kodlamasından veritabanı harmanlama kodu sayfasına sürücü dönüştürme; veritabanı harmanlama kodu sayfasından sütun harmanlama kodu sayfasına sunucu dönüştürme. | Veritabanı harmanlama kodu sayfasının giriş verilerindeki tüm karakterleri gösterediğinden emin olun. Örneğin, Lehçe karakter eklemek için veritabanı harmanlama kodu sayfası harmanlama belirleyicisi olarak Lehçe kullanabilir (örneğin, Polish_100_CI_AS_SC) veya UTF-8 etkin olabilir. |
| DBTYPE_WSTR | DBTYPE_WSTR | UTF-16'dan sütun harmanlama kodu sayfasına sunucu dönüştürme. | Yok. |
UTF-8 kodlamalı CHAR veya VARCHAR sütunundan veri alma
Alınan veriler için arabellek oluşturulurken, dbbinding yapıları dizisi kullanılarak arabellek açıklanır. Her DBBINDING yapısı, alınan satırdaki tek bir sütunu ilişkilendirir. Sütun verilerini CHAR olarak almak için DBBINDING yapısının wType değerini DBTYPE_STR olarak ayarlayın. Sütun verilerini WCHAR olarak almak için DBBINDING yapısının wType değerini DBTYPE_WSTR olarak ayarlayın.
Sonuç arabellek türü göstergesi DBTYPE_STR için sürücü UTF-8 ile kodlanmış verileri istemci kodlamasına dönüştürür. Kullanıcı, verilerin kaybolmaması için istemci kodlamasının UTF-8 sütunundaki verileri temsil edebildiğinden emin olmalıdır, aksi takdirde veri kaybı oluşabilir.
Sonuç arabellek türü göstergesi DBTYPE_WSTR için sürücü UTF-8 ile kodlanmış verileri UTF-16 kodlamasına dönüştürür.
UTF-8'i desteklemeyen sunucularla iletişim
SQL Server için Microsoft OLE DB Sürücüsü, verilerin sunucunun anlayabileceği şekilde sunucuya açık olmasını sağlar. UTF-8 özellikli istemcilerden veri eklerken, sürücü UTF-8 ile kodlanmış dizeleri sunucuya göndermeden önce veritabanı harmanlama kodu sayfasına çevirir.
Uyarı
UTF-8 ile kodlanmış verileri eski bir metin sütununa eklemek için ISequentialStream arabiriminin kullanılması yalnızca UTF-8'i destekleyen sunucularla sınırlıdır. Ayrıntılar için bkz. BLOB'lar ve OLE Nesneleri.
Ayrıca Bkz.
SQL Server Özellikleri için OLE DB Driver
SQL Server için OLE DB Sürücüsünde UTF-16 Desteği