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. |