Udostępnij za pośrednictwem


Obsługa rozrzedzenia kolumn (OLE DB)

Ten temat zawiera informacje o SQL Server macierzystego klienta OLE DB obsługa rozrzedzania kolumn.Aby uzyskać więcej informacji o kolumnach sparse, zobacz Obsługa rozrzedzenia kolumn w SQL Server Native Client.

OLE DB instrukcji metadanych

Począwszy od SQL Server 2008, nową wartość flagi DBCOLUMNFLAGS, DBCOLUMNFLAGS_SS_ISCOLUMNSET, jest dostępna.Wartość ta powinna być zestaw dla kolumn, które są column_set wartości.Flaga DBCOLUMNFLAGS mogą być pobierane przez dwFlags parametr IColumnsInfo::GetColumnsInfo i DBCOLUMN_FLAGS kolumna zestawu zestaw wierszy zwracanych przez IColumnsRowset::GetColumnsRowset.

OLE DB wykazu metadanych

Dwa dodatkowe SQL Server-kolumny zostały dodane do DBSCHEMA_COLUMNS.

Nazwa kolumny

Typ danych

Wartość i komentarze

SS_IS_SPARSE

DBTYPE_BOOL

Jeśli kolumna jest kolumna rozrzedzona, to ma wartość VARIANT_TRUE; w przeciwnym razie VARIANT_FALSE.

SS_IS_COLUMN_SET

DBTYPE_BOOL

Jeśli kolumna jest rozrzedzony column_set kolumny, to ma wartość VARIANT_TRUE; w przeciwnym razie VARIANT_FALSE.

Dodano także dwa dodatkowe schematu zestawów wierszy.Tych zestawów wierszy mają taką samą strukturę jak DBSCHEMA_COLUMNS, lecz zwracają różne zawartości.DBSCHEMA_COLUMNS_EXTENDED zwraca wszystkie kolumny, niezależnie od column_set członkostwa.DBSCHEMA_SPARSE_COLUMN_SET zwraca tylko kolumny, które są członkami sparse column_set.

OLE DB DataTypeCompatibility zachowanie

Zachowanie z DataTypeCompatibility=80 (w połączeniu z ciąg) jest zgodna z SQL Server 2000 klient w następujący sposób:

  • Nowych zestawów zestaw wierszy schematu nie są widoczne, a nie zestaw wierszy dla nich w zestawie zestaw wierszy zestawów zestaw wierszy schematu.

  • Nowe kolumny w zestawie zestaw wierszy kolumn nie są widoczne.

  • DBCOLUMNFLAGS_SS_ISCOLUMNzestaw nie jest zestaw dla column_set kolumny.

  • DBCOMPUTEMODE_NOTCOMPUTED jest zestaw dla column_set kolumny.

OLE DB obsługa rozrzedzania kolumn

Zmodyfikowano następujące interfejsy OLE DB SQL Server Native Client do obsługi sparse kolumny:

Funkcja typu lub element członkowski

Opis

IColumnsInfo::GetColumnsInfo

Nowe flagi DBCOLUMNFLAGS wartość DBCOLUMNFLAGS_SS_ISCOLUMNzestaw jest zestaw dla column_set kolumn w dwFlags.

DBCOLUMNFLAGS_WRITE jest zestaw dla column_set kolumny.

IColumsRowset::GetColumnsRowset

Nową wartość flagi DBCOLUMNFLAGS, DBCOLUMNFLAGS_SS_ISCOLUMNzestaw, jest zestaw dla column_set kolumn w DBCOLUMN_FLAGS.

DBCOLUMN_COMPUTEMODE jest zestaw do DBCOMPUTEMODE_DYNAMIC do column_set kolumny.

IDBSchemaRowset::GetSchemaRowset

DBSCHEMA_COLUMNS zwraca dwa nowe kolumny: SS_IS_COLUMN_SET i SS_IS_SPARSE.

DBSCHEMA_COLUMNS zwraca tylko te kolumny, które nie są członkami column_set.

Dodano dwa nowe zestawów wierszy schematu: DBSCHEMA_COLUMNS_EXTENDED zwróci wszystkie kolumny, niezależnie od sparseness z column_set członkostwa.DBSCHEMA_SPARSE_COLUMN_SET zwraca tylko te kolumny, które są członkami column_set.Te nowe zestawów wierszy ma te same kolumny i ograniczenia jako DBSCHEMA_COLUMNS.

IDBSchemaRowset::GetSchemas

IDBSchemaRowset::GetSchemas zawiera identyfikatory GUID dla nowych zestawów wierszy DBSCHEMA_COLUMNS_EXTENDED i DBSCHEMA_SPARSE_COLUMN_SET na liście dostępnych schematów zestawów wierszy.

ICommand::Execute

Jeśli select * from table jest używana, zwraca wszystkie kolumna, które nie są członkami sparse column_set, plus kolumnie XML, zawierającą wartości wszystkich kolumn niż null, będących członkami sparse column_set, jeżeli obecny.

IOpenRowset::OpenRowset

IOpenRowset::OpenRowsetzwraca zestawu zestaw wierszy z kolumny ICommand::Execute, z select * kwerendy w tej samej tabela.

ITableDefinition

Nie ma żadnej zmiany do tego interfejs dla kolumn rozrzedzony lub column_set kolumny.Aplikacje, które trzeba wprowadzać modyfikacje schematu należy wykonać odpowiednie Transact-SQL bezpośrednio.