Udostępnij przez


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.

Zobacz także

Koncepcje