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