Aracılığıyla paylaş


Sparse Columns Desteği (OLE DB)

Ş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

Bu konu, seyrek sütunlar için SQL Server desteği için OLE DB Driver hakkında bilgi sağlar. Seyrek sütunlar hakkında daha fazla bilgi için, SQL Server için OLE DB Driver in Sparse Columns Support bölümüne bakınız. Örnek için, Sparse Columns için Display Column and Catalog Metadata (OLE DB) bölümüne bakınız.

OLE DB Statement Metadata

SQL Server 2008 (10.0.x) ile itibaren, yeni bir DBCOLUMNFLAGS bayrak değeri olan DBCOLUMNFLAGS_SS_ISCOLUMNSET mevcuttur. Bu değer, column_set değer olan sütunlar için ayarlanmalıdır. DBCOLUMNFLAGS bayrağı, IColumnsInfo::GetColumnsInfo dwFlags parametresi ve IColumnsRowset::GetColumnsRowset tarafından döndürülen satır kümesinin DBCOLUMN_FLAGS sütunu üzerinden alınabilir.

OLE DB Kataloğu Meta Verileri

DBSCHEMA_COLUMNS'ye iki ek SQL Server'a özgü sütun eklenmiştir.

Sütun adı Veri türü Değer/yorumlar
SS_IS_SPARSE DBTYPE_BOOL Eğer sütun seyrek bir sütunsa, bu değer VARIANT_TRUE olur; aksi takdirde VARIANT_FALSE.
SS_IS_COLUMN_SET DBTYPE_BOOL Eğer sütun seyrek column_set sütunsa, bu değer VARIANT_TRUE olur; aksi takdirde VARIANT_FALSE.

İki ek şema satır seti de eklenmiştir. Bu sıra kümeleri DBSCHEMA_COLUMNS ile aynı yapıya sahiptir ancak farklı içerik döndürür. DBSCHEMA_COLUMNS_EXTENDED üyeliğine bakılmaksızın tüm sütunları geri column_set . DBSCHEMA_SPARSE_COLUMN_SET yalnızca seyrek column_set üyesi olan sütunları döndürür.

OLE DB DataTypeCompatibility Davranışı

DataTypeCompatibility=80 (bağlantı dizisinde) ile davranış, SQL Server 2000 (8.x) istemcisiyle aşağıdaki gibi tutarlıdır:

  • Yeni şema sıra setleri görünmüyor ve şema satırları sıralarında onlar için satır yok.

  • COLUMNS satır setindeki yeni sütunlar görünmez.

  • DBCOLUMNFLAGS_SS_ISCOLUMNSET column_set sütun için ayarlanmamıştır.

  • DBCOMPUTEMODE_NOTCOMPUTED column_set sütun için ayarlanmıştır.

OLE DB Seyrek Sütunlar için Destek

Aşağıdaki OLE DB arayüzleri, OLE DB Driver for SQL Server'da seyrek sütunları destekleyecek şekilde değiştirilmiştir:

Tip veya üye fonksiyonu Description
IColumnsInfo::GetColumnsInfo dwFlags'tecolumn_set sütun için yeni bir DBCOLUMNFLAGS bayrak değeri DBCOLUMNFLAGS_SS_ISCOLUMNSET ayarlanmıştır.

DBCOLUMNFLAGS_WRITE column_set sütun için ayarlanmıştır.
IColumnsRowset::GetColumnsRowset Yeni bir DBCOLUMNFLAGS bayrak değeri, DBCOLUMNFLAGS_SS_ISCOLUMNSET, DBCOLUMN_FLAGS'daki column_set sütun için ayarlanır.

DBCOLUMN_COMPUTEMODE, column_set sütun için DBCOMPUTEMODE_DYNAMIC olarak ayarlanmıştır.
IDBSchemaRowset::GetSchemaRowset DBSCHEMA_COLUMNS iki yeni sütun döner: SS_IS_COLUMN_SET ve SS_IS_SPARSE.

DBSCHEMA_COLUMNS yalnızca bir column_set üyesi olmayan sütunları döndürür.

İki yeni şema satır seti eklendi: DBSCHEMA_COLUMNS_EXTENDED üyeliğin seyrekliğine bakılmaksızın tüm sütunları geri column_set . DBSCHEMA_SPARSE_COLUMN_SET yalnızca column_set üyesi olan sütunları döndürür. Bu yeni satır kümeleri DBSCHEMA_COLUMNS ile aynı sütunlara ve kısıtlamalara sahiptir.
IDBSchemaRowset::GetSchemas IDBSchemaRowset::GetSchemas, yeni satır kümeleri için GUID'leri mevcut şema satırları listesine DBSCHEMA_COLUMNS_EXTENDED ve DBSCHEMA_SPARSE_COLUMN_SET dahil eder.
ICommand::Execute Eğer * fromtablosu kullanılırsa, seyrek column_set'in üyesi olmayan tüm sütunları ve varsa seyrek column_set üyesi olan tüm null olmayan sütunların değerlerini içeren bir XML sütunu döner.
IOpenRowset::OpenRowset IOpenRowset::OpenRowset, ICommand::Execute ile aynı sütunlara sahip bir satır kümesi döndürür, aynı tabloda bir select * sorgusu bulunur.
ITableDefinition Bu arayüzde seyrek sütunlar veya column_set sütunlar için herhangi bir değişiklik yoktur. Şema değişiklikleri yapması gereken uygulamalar, uygun Transact-SQL doğrudan çalıştırmalıdır.

Ayrıca Bkz.

SQL Server Programlama için OLE DB Sürücüsü