SSVARIANT 結構
定義於 sqlncli.h 中的 SSVARIANT 結構會對應至 SQL Server Native Client OLEDB 提供者中的 DBTYPE_SQLVARIANT 值。
SSVARIANT 是辨識聯集。 根據 vt 成員的值而定,取用者可以判斷要讀取的成員。 vt 值會對應至 SQL Server 資料類型。 因此,SSVARIANT 結構可以保留任何 SQL Server 類型。 如需有關標準 OLE DB 類型之資料結構的詳細資訊,請參閱<類型指標>(英文)。
備註
當 DataTypeCompat==80 時,數個 SSVARIANT 子類型會變成字串。 例如,下列 vt 值在 SSVARIANT 中會顯示為 VT_SS_WVARSTRING:
VT_SS_DATETIMEOFFSET
VT_SS_DATETIME2
VT_SS_TIME2
VT_SS_DATE
當 DateTypeCompat == 0 時,這些類型都會以原生形式出現。
如需有關 SSPROP_INIT_DATATYPECOMPATIBILITY 的詳細資訊,請參閱<搭配 SQL Server Native Client 使用連接字串關鍵字>。
sqlncli.h 檔案包含變數存取巨集,可簡化 SSVARIANT 結構中成員類型的取值 (Dereference)。 V_SS_DATETIMEOFFSET 即為一例,可以按照下列方式使用:
memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;
如需 SSVARIANT 結構之每個成員的完整存取巨集集合,請參考 sqlncli.hi 檔案。
下表將描述 SSVARIANT 結構的成員:
成員 |
OLE DB 類型指標 |
OLE DB C 資料類型 |
vt 值 |
註解 |
---|---|---|---|---|
vt |
SSVARTYPE |
指定包含在 SSVARIANT 結構中的值類型。 |
||
bTinyIntVal |
DBTYPE_UI1 |
BYTE |
VT_SS_UI1 |
支援 tinyint SQL Server 資料類型。 |
sShortIntVal |
DBTYPE_I2 |
SHORT |
VT_SS_I2 |
支援 smallint SQL Server 資料類型。 |
lIntVal |
DBTYPE_I4 |
LONG |
VT_SS_I4 |
支援 int SQL Server 資料類型。 |
llBigIntVal |
DBTYPE_I8 |
LARGE_INTEGER |
VT_SS_I8 |
支援 bigint SQL Server 資料類型。 |
fltRealVal |
DBTYPE_R4 |
float |
VT_SS_R4 |
支援 real SQL Server 資料類型。 |
dblFloatVal |
DBTYPE_R8 |
double |
VT_SS_R8 |
支援 float SQL Server 資料類型。 |
cyMoneyVal |
DBTYPE_CY |
LARGE_INTEGER |
VT_SS_MONEY VT_SS_SMALLMONEY |
支援 money 和 smallmoney SQL Server 資料類型。 |
fBitVal |
DBTYPE_BOOL |
VARIANT_BOOL |
VT_SS_BIT |
支援 bit SQL Server 資料類型。 |
rgbGuidVal |
DBTYPE_GUID |
GUID |
VT_SS_GUID |
支援 uniqueidentifier SQL Server 資料類型。 |
numNumericVal |
DBTYPE_NUMERIC |
DB_NUMERIC |
VT_SS_NUMERIC |
支援 numeric SQL Server 資料類型。 |
dDateVal |
DBTYPE_DATE |
DBDATE |
VT_SS_DATE |
支援 date SQL Server 資料類型。 |
tsDateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 |
支援 smalldatetime、datetime 和 datetime2 SQL Server 資料類型。 |
Time2Val |
DBTYPE_DBTIME2 |
DBTIME2 |
VT_SS_TIME2 |
支援 time SQL Server 資料類型。 包括下列成員: tTime2Val (DBTIME2) bScale (BYTE) 指定 tTime2Val 值的小數位數。 |
DateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_DATETIME2 |
支援 datetime2 SQL Server 資料類型。 包括下列成員: tsDataTimeVal (DBTIMESTAMP) bScale (BYTE) 指定 tsDataTimeVal 值的小數位數。 |
DateTimeOffsetVal |
DBTYPE_DBTIMESTAMPOFSET |
DBTIMESTAMPOFFSET |
VT_SS_DATETIMEOFFSET |
支援 datetimeoffset SQL Server 資料類型。 包括下列成員: tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET) bScale (BYTE) 指定 tsoDateTimeOffsetVal 值的小數位數。 |
NCharVal |
沒有對應的 OLE DB 類型指標。 |
struct _NCharVal |
VT_SS_WVARSTRING, VT_SS_WSTRING |
支援 nchar 和 nvarchar SQL Server 資料類型。 包括下列成員: sActualLength (SHORT) 指定 pwchNCharVal 所指向之字串的實際長度。 不包括結尾的零。 sMaxLength (SHORT) 指定 pwchNCharVal 所指向之字串的最大長度。 pwchNCharVal (WCHAR *) 字串的指標。 未使用的成員:rgbReserved、dwReserved 和 pwchReserved。 |
CharVal |
沒有對應的 OLE DB 類型指標。 |
struct _CharVal |
VT_SS_STRING, VT_SS_VARSTRING |
支援 char 和 varchar SQL Server 資料類型。 包括下列成員: sActualLength (SHORT) 指定 pchCharVal 所指向之字串的實際長度。 不包括結尾的零。 sMaxLength (SHORT) 指定 pchCharVal 所指向之字串的最大長度。 pchCharVal (CHAR *) 字串的指標。 未使用的成員: rgbReserved、dwReserved 和 pwchReserved。 |
BinaryVal |
沒有對應的 OLE DB 類型指標。 |
struct _BinaryVal |
VT_SS_VARBINARY, VT_SS_BINARY |
支援 binary 和 varbinary SQL Server 資料類型。 包括下列成員: sActualLength (SHORT) 指定 prgbBinaryVal 所指向之資料的實際長度。 sMaxLength (SHORT) 指定 prgbBinaryVal 所指向之資料的最大長度。 prgbBinaryVal (BYTE *) 二進位資料的指標。 未使用的成員:dwReserved。 |
UnknownType |
未使用 |
未使用 |
未使用 |
未使用 |
BLOBType |
未使用 |
未使用 |
未使用 |
未使用 |