Aracılığıyla paylaş


BLOB'lar ve OLE Nesneleri

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

OLE DB sürücüsünü indirme

SQL Server için OLE DB Sürücüsü, ISequentialStream arayüzünü SQL Server ntext, metin 1, image, varchar(max), nvarchar(max), varbinary(max) ve xml veri tiplerine ikili büyük nesneler (BLOB'lar) olarak tüketici erişimini desteklemek için sunar. ISequentialStream'tekiOkuma yöntemi, tüketicinin yönetilebilir parçalar halinde çok sayıda veriyi almasına olanak tanır.

[1]: ISequentialStream arayüzünün UTF-8 kodlu verilerini eski metin sütununa eklemek için kullanılması yalnızca UTF-8'i destekleyen sunucularla sınırlıdır. UTF-8'i desteklemeyen bir sunucuyu hedef alırken bu senaryoyu çalıştırmaya çalışıldığında, sürücü şu hata mesajını gönderir: "Seçilen sütun türü üzerinde akış desteklenmiyor".

Bu özelliği gösteren bir örnek için bkz. Büyük Veri Seti (OLE DB) bölüm.

SQL Server için OLE DB Sürücüsü, kullanıcı arayüz işaretçisini veri değiştirme için giden bir accesser ile sağladığında, tüketici tarafından uygulanan bir IStorage arayüzü kullanabilir.

Büyük değerli veri tipleri için, SQL Server için OLE DB Sürücüsü, IRowset ve DDL arayüzlerindeki tip boyutu varsayımlarını kontrol eder. Varchar, nvarchar ve varbinary veri tiplerine ve maksimum boyutuna sınırsız olarak ayarlanmış sütunlar, şema satır kümeleri ve sütun veri tiplerini döndüren arayüzler aracılığıyla ISLONG olarak temsil edilir.

SQL Server için OLE DB Sürücüsü, varchar(max), varbinary(max) ve nvarchar(max) tiplerini sırasıyla DBTYPE_STR, DBTYPE_BYTES ve DBTYPE_WSTR olarak gösterir.

Bu türlerle çalışmak için bir uygulamanın aşağıdaki seçenekleri vardır:

  • Bind tipi olarak (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Eğer tampon yeterince büyük değilse, önceki sürümlerdeki gibi (daha büyük değerler artık mevcut) kesinti gerçekleşir.

  • Tip olarak bind edin ve ayrıca DBTYPE_BYREF belirtin.

  • Bind as DBTYPE_IUNKNOWN ve streaming kullanın.

DBTYPE_IUNKNOWN ile bağlıysa, ISequentialStream akış işlevselliği kullanılır. SQL Server için OLE DB Sürücüsü, büyük değerli veri türleri için çıkış parametrelerini DBTYPE_IUNKNOWN olarak bağlamayı destekler. Bu, bir saklanan prosedürün bu veri tiplerini dönüş değerleri olarak döndürdüğü ve bu tür verilerin istemciye DBTYPE_IUNKNOWN olarak geri gönderileceği senaryoları desteklemek içindir.

Depolama Nesnesi Sınırlamaları

  • SQL Server için OLE DB Sürücüsü yalnızca tek bir açık depolama nesnesini destekleyebilir. Birden fazla depolama nesnesini açma girişimleri (birden fazla ISequentialStream arayüz işaretçisine referans almak için) DBSTATUS_E_CANTCREATE verir.

  • SQL Server için OLE DB Sürücüsünde, DBPROP_BLOCKINGSTORAGEOBJECTS yalnızca okunan özelliğin varsayılan değeri VARIANT_TRUE. Bu nedenle, bir depolama nesnesi aktifse, bazı yöntemler (depolama nesneleri üzerindeki yöntemler dışında) E_UNEXPECTED ile başarısız olur.

  • Tüketici tarafından uygulanan bir depolama nesnesi tarafından sunulan veri uzunluğu, depolama nesnesine referans veren satır erişimcisi oluşturulduğunda SQL Server için OLE DB Sürücüsü'ne bildirilmelidir. Tüketici, erişim oluşturma için kullanılan DBBINDING yapısına bir uzunluk göstergesi bağlamalıdır.

  • Bir satırda birden fazla büyük veri değeri varsa ve DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM değilse, tüketici ya OLE DB Driver for SQL Server tarafından desteklenen bir sıra kümesi kullanarak satır verisini almak ya da diğer satır değerlerini almadan önce tüm büyük veri değerlerini işlemek zorundadır. Eğer DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM ise, SQL Server için OLE DB Sürücüsü tüm xml veri türlerini ikili büyük nesneler (BLOB'lar) olarak önbelleyerek böylece herhangi bir sırayla erişilebiliyor.

Bu Kısımda

Ayrıca Bkz.

SQL Server Programlama için OLE DB Sürücüsü
Büyük Değer Türlerinin Kullanımı