Mapowanie typu danych zestawów wierszy oraz parametry
W zestawów wierszy i jako wartości parametru SQL Server reprezentuje macierzystym klienta dostawca OLE DB SQL Server danych przy użyciu następujących OLE DB określone typy danych, zgłoszone w funkcjach IColumnsInfo::GetColumnInfo i ICommandWithParameters::GetParameterInfo.
Typ danych programu SQL Server |
Typ danych OLE DB |
|---|---|
bigint |
DBTYPE_I8 |
binarny |
DBTYPE_BYTES |
bit |
DBTYPE_BOOL |
CHAR |
TYPEM DBTYPE_STR |
data_i_godzina |
DBTYPE_DBTIMESTAMP |
datetime2 |
DBTYPE_DBTIME2 |
dziesiętny |
DBTYPE_NUMERIC |
Pływak |
DBTYPE_R8 |
obraz |
DBTYPE_BYTES |
int |
DBTYPE_I4 |
pieniądze |
DBTYPE_CY |
nchar |
DBTYPE_WSTR |
ntext |
DBTYPE_WSTR |
numeryczne |
DBTYPE_NUMERIC |
nvarchar |
DBTYPE_WSTR |
rzeczywiste |
DBTYPE_R4 |
smalldatetime |
DBTYPE_DBTIMESTAMP |
smallint |
DBTYPE_I2 |
Smallmoney |
DBTYPE_CY |
sql_variant |
DBTYPE_VARIANT DBTYPE_SQLVARIANT |
Sysname |
DBTYPE_WSTR |
tekst |
TYPEM DBTYPE_STR |
Sygnatura czasowa |
DBTYPE_BYTES |
tinyint |
DBTYPE_UI1 |
UDT |
DBTYPE_UDT |
Uniqueidentifier |
DBTYPE_GUID |
varbinary |
DBTYPE_BYTES |
varchar |
TYPEM DBTYPE_STR |
XML |
DBTYPE_XML |
SQL Server Macierzystego klienta dostawca OLE DB obsługuje konwersji danych wymaganych przez konsumenta, jak pokazano na ilustracji.
Sql_variant obiektów może pomieścić dane dowolnego SQL Server danych typu tekst, ntext, obraz, varchar(max), nvarchar(max), varbinary(max), xml, sygnatura czasowa i Microsoft z wyjątkiem.NET Framework wspólnej language runtime (CLR) zdefiniowane przez użytkownika typów.Dane typu sql_variant również nie może mieć wystąpienie sql_variant jako podstawowy typ danych.Na przykład kolumna może zawierać smallint wartości niektóre wiersze pływaka wartości dla innych wierszy i char/nchar wartości w pozostałej.
Ostrzeżenie
Sql_variant typ danych jest podobne do typ danych Variant języka Microsoft Visual Basic ® i DBTYPE_VARIANT, DBTYPE_SQLVARIANT w OLEDB.
Gdy sql_variant jako DBTYPE_VARIANT jest pobierane dane, jest umieszczana w strukturze wariant w buforze.Ale podtypów w strukturze WARIANTU nie mogą być mapowane do podtypów zdefiniowane w sql_variant typu danych.Sql_variant danych następnie musi zostać pobrana jako DBTYPE_SQLVARIANT, aby wszystkie podtypy do dopasowania.
DBTYPE_SQLVARIANT typ danych
Do obsługi sql_variant typu danych, SQL Server macierzystego klienta dostawca OLE DB opisuje typ danych specyficznych dla dostawca o nazwie DBTYPE_SQLVARIANT.Gdy sql_variant pobierane dane w jako DBTYPE_SQLVARIANT, jest przechowywany w strukturze SSVARIANT specyficznym dla dostawca.Struktura SSVARIANT zawiera wszystkie podtypy, spełniających podtypów sql_variant typu danych.
Właściwość sesja musi być również SSPROP_ALLOWNATIVEVARIANT zestaw na wartość TRUE.
Właściwości specyficzne dla dostawcy SSPROP_ALLOWNATIVEVARIANT
Podczas pobierania danych, można określić jawnie, jaki typ danych zwracanych kolumna lub parametru.IkolumnasInfo można również uzyskać kolumna informacji i używać, aby wykonać powiązanie.Gdy IColumnsInfo jest używana do uzyskiwania informacji o kolumnie dla celów powiązanie Jeśli właściwość ma wartość FALSE (wartość domyślna), sesja SSPROP_ALLOWNATIVEVARIANT DBTYPE_VARIANT jest zwracana dla sql_variant kolumna.Właściwość SSPROP_ALLOWNATIVEVARIANT jest DBTYPE_SQLVARIANT wartość FAŁSZ, nie jest obsługiwane.Jeśli właściwość SSPROP_ALLOWNATIVEVARIANT jest zestaw ma wartość TRUE, typem kolumna jest zwracany jako DBTYPE_SQLVARIANT, w którym przypadek bufor będzie zawierać struktury SSVARIANT.Podczas pobierania sql_variant danych jako DBTYPE_SQLVARIANT właściwości sesja musi być SSPROP_ALLOWNATIVEVARIANT zestaw na wartość TRUE.
Właściwość SSPROP_ALLOWNATIVEVARIANT jest częścią zestaw właściwości specyficzne dla dostawca DBPROPSET_SQLSERVERSESSION i właściwość sesja.
DBTYPE_VARIANT stosuje się do innych dostawców OLE DB.
SSPROP_ALLOWNATIVEVARIANT
SSPROP_ALLOWNATIVEVARIANT jest właściwością sesja i jest częścią DBPROPzestaw_SQLSERVERSESSION właściwość zestaw.
SSPROP_ALLOWNATIVEVARIANT |
Typ: VT_BOOL. R I W: Odczyt i zapis Wartość domyślna: VARIANT_FALSE Opis: Określa, jeżeli dane pobrane w DBTYPE_VARIANT lub DBTYPE_SQLVARIANT. VARIANT_TRUE: Typ kolumny są zwracane jako DBTYPE_SQLVARIANT, w którym przypadek bufor będzie zawierać struktury SSVARIANT. VARIANT_FALSE: Typ kolumny są zwracane jako DBTYPE_VARIANT i bufor będzie mieć strukturę WARIANTU. |