SQL Server Native Client 中的 SSVARIANT 結構

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

在 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 結構中 成員類型的取值。 V_SS_DATETIMEOFFSET 即為一例,可以按照下列方式使用:

memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);  
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;  

如需 SSVARIANT 結構每個成員 的完整存取宏集,請參閱 sqlncli.hi 檔案。

下表將描述 SSVARIANT 結構的成員:

member 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 支援 moneysmallmoney 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 支援 smalldatetimedatetimedatetime2 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
支援 NcharNvarchar SQL Server 資料類型。

包括下列成員:

sActualLength (SHORT) 指定 pwchNCharVal 指向之字串的實際長度。 不包括結尾的零。

sMaxLength (SHORT) 指定 pwchNCharVal 指向之字串的最大長度。

pwchNCharVal (WCHAR *) 指向字串的指標。

未使用的成員: rgbReserved dwReserved pwchReserved
CharVal 沒有對應的 OLE DB 類型指標。 struct _CharVal VT_SS_STRING,

VT_SS_VARSTRING
支援 charvarchar SQL Server 資料類型。

包括下列成員:

sActualLength (SHORT) 指定 pchCharVal 指向之字串的實際長度。 不包括結尾的零。

sMaxLength (SHORT) 指定 pchCharVal 指向之字串的最大長度。

pchCharVal (CHAR *) 指向字串的指標。

未使用的成員:

rgbReserved dwReserved pwchReserved
BinaryVal 沒有對應的 OLE DB 類型指標。 struct _BinaryVal VT_SS_VARBINARY,

VT_SS_BINARY
支援 binaryvarbinary SQL Server 資料類型。

包括下列成員:

sActualLength (SHORT) 指定 prgbBinaryVal 指向之資料的實際長度。

sMaxLength (SHORT) 指定 prgbBinaryVal 指向之資料的最大長度。

prgbBinaryVal (BYTE *) 指向二進位資料的指標。

未使用的成員:dwReserved
UnknownType 未使用 未使用 未使用 未使用
BLOBType 未使用 未使用 未使用 未使用

另請參閱

資料類型 (OLE DB)