Udostępnij przez


Mapowanie typu danych w zestawów wierszy i parametry

W wierszy i jako wartości parametru SQL Server Reprezentuje macierzystego dostawca klient OLE DB SQL Server dane przy użyciu następujących typów danych baz danych OLE zdefiniowane w funkcji IColumnsInfo::GetColumnInfo and ICommandWithParameters::GetParameterInfo.

Typ danych programu SQL Server

Typ danych OLE DB

bigint

DBTYPE_I8

plik binarny

DBTYPE_BYTES

bit

DBTYPE_BOOL

Wskazuje inicjatora wątek.

DBTYPE_STR

data_i_godzina

DBTYPE_DBTIMESTAMP

decimal

DBTYPE_NUMERIC

zmiennoprzecinkowe

DBTYPE_R8

obraz

DBTYPE_BYTES

int

DBTYPE_I4

pieniądze

DBTYPE_CY

nchar

DBTYPE_WSTR

ntext

DBTYPE_WSTR

numeric

DBTYPE_NUMERIC

nvarchar

DBTYPE_WSTR

rzeczywiste

DBTYPE_R4

Smalldatetime

DBTYPE_DBTIMESTAMP

smallint

DBTYPE_I2

smallmoney

DBTYPE_CY

sql_variant

DBTYPE_VARIANT DBTYPE_SQLVARIANT

nazwa_systemu

DBTYPE_WSTR

tekst

DBTYPE_STR

Sygnatura czasowa

DBTYPE_BYTES

tinyint

DBTYPE_UI1

UDT

DBTYPE_UDT

Uniqueidentifier

DBTYPE_GUID

varbinary

DBTYPE_BYTES

varchar

DBTYPE_STR

XML

DBTYPE_XML

The SQL Server Native klient OLE DB dostawca supports consumer-requested data conversions as shown in the illustration.

The sql_variant objects can hold data of any SQL Server data type except text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xml, timestamp, and Microsoft .NET Framework common language runtime (CLR) user-defined types.wystąpienie danych sql_variant również nie może mieć sql_variant jako jego podstawowego podstawowy typ danych.Na przykład kolumna może zawierać smallint Niektóre wiersze, wartościzmiennoprzecinkowe wartości innych wierszach i CHAR/nchar wartości w pozostałej.

Uwaga

The sql_variant data type is similar to the Variant data type in Microsoft Visual Basic® and the DBTYPE_VARIANT, DBTYPE_SQLVARIANT in OLEDB.

Kiedy sql_variant danych pobieranych jako DBTYPE_VARIANT, jest umieszczany w strukturze VARIANT w buforze.Ale podtypów w strukturze VARIANT może być błędnie mapowany podtypów zdefiniowane w sql_variant typ danych.The sql_variant data must then be fetched as DBTYPE_SQLVARIANT in order for all the subtypes to match.

Typ danych DBTYPE_SQLVARIANT

Aby obsługiwać sql_variant Typ danych SQL Server Macierzystego dostawca klient OLE DB opisuje typ specyficznym dla dostawca danych o nazwie DBTYPE_SQLVARIANT. Kiedy sql_variant są pobierane dane w jako DBTYPE_SQLVARIANT, jest on przechowywany w strukturze SSVARIANT specyficznym dla dostawca.Struktura SSVARIANT zawiera wszystkie podtypy, spełniających podtypów z sql_variant typ danych.

Właściwość sesja musi być również SSPROP_ALLOWNATIVEVARIANT zestaw na wartość TRUE.

właściwość specyficzne dla dostawca SSPROP_ALLOWNATIVEVARIANT

W pobieranie danych, można określić jawnie jaki typ danych powinny być zwrócone, kolumna lub parametru.IColumnsInfo można również uzyskać informacje o kolumnach i używać, aby wykonać wiązanie.Kiedy IColumnsInfo jest używany do uzyskiwania informacji o kolumnie dla celów wiązania, jeśli właściwość sesja SSPROP_ALLOWNATIVEVARIANT ma wartość FALSE (wartość domyślna), DBTYPE_VARIANT jest zwracana dla sql_variant kolumna.Jeśli właściwość SSPROP_ALLOWNATIVEVARIANT jest FALSE DBTYPE_SQLVARIANT nie jest obsługiwana.Jeśli właściwość SSPROP_ALLOWNATIVEVARIANT jest zestaw na wartość TRUE, typem kolumna jest zwracany jako DBTYPE_SQLVARIANT, w których przypadek bufor będzie wyświetlał struktury SSVARIANT.W pobieranie sql_variant dane jako DBTYPE_SQLVARIANT właściwość sesja musi być SSPROP_ALLOWNATIVEVARIANT zestaw na wartość TRUE.

Właściwość SSPROP_ALLOWNATIVEVARIANT jest częścią zestaw właściwości DBPROPSET_SQLSERVERSESSION specyficznym dla dostawca i jest właściwością sesja.

DBTYPE_VARIANT odnosi się do innych dostawców OLE DB.

SSPROP_ALLOWNATIVEVARIANT

SSPROP_ALLOWNATIVEVARIANT jest właściwością sesja i część DBPROPSET_SQLSERVERSESSION właściwość jest ustawiona.

SSPROP_ALLOWNATIVEVARIANT

Typ: VT_BOOL

R/W: Odczyt/zapis

Wartość domyślna: VARIANT_FALSE

Opis: Określa, czy dane pobrane w jest jak DBTYPE_VARIANT lub DBTYPE_SQLVARIANT.

VARIANT_TRUE: Typ kolumna są zwracane jako DBTYPE_SQLVARIANT, w których przypadek bufor będzie wyświetlał SSVARIANT struktury.

VARIANT_FALSE: Typ kolumna są zwracane jako DBTYPE_VARIANT i buforu ma strukturę VARIANT.

See Also

Concepts