次の方法で共有


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 構造体のメンバー型の逆参照を単純化するバリアント アクセス マクロが格納されています。 たとえば、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

SQL Server の tinyint データ型をサポートします。

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

SQL Server の smallint データ型をサポートします。

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

SQL Server の int データ型をサポートします。

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

SQL Server の bigint データ型をサポートします。

fltRealVal

DBTYPE_R4

float

VT_SS_R4

SQL Server の real データ型をサポートします。

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

SQL Server の float データ型をサポートします。

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

SQL Server の money データ型と smallmoney データ型をサポートします。

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

SQL Server の bit データ型をサポートします。

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

SQL Server の uniqueidentifier データ型をサポートします。

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

SQL Server の numeric データ型をサポートします。

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

SQL Server の date データ型をサポートします。

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

SQL Server の smalldatetime、datetime、および datetime2 データ型をサポートします。

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

SQL Server の time データ型をサポートします。

次のメンバーを含みます。

tTime2Val (DBTIME2)

bScale (BYTE)。tTime2Val 値の小数点以下桁数を指定します。

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

SQL Server の datetime2 データ型をサポートします。

次のメンバーを含みます。

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE)。tsDataTimeVal 値の小数点以下桁数を指定します。

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

SQL Server の datetimeoffset データ型をサポートします。

次のメンバーを含みます。

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE)。tsoDateTimeOffsetVal 値の小数点以下桁数を指定します。

NCharVal

対応する OLE DB 型インジケーターはありません。

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

SQL Server の nchar データ型と nvarchar データ型をサポートします。

次のメンバーを含みます。

sActualLength (SHORT)。pwchNCharVal が参照している文字列の実際の長さを指定します。 末尾の 0 は含まれません。

sMaxLength (SHORT)。pwchNCharVal が参照している文字列の最大の長さを指定します。

pwchNCharVal (WCHAR *)。文字列を指すポインターです。

使用されないメンバー : rgbReserved、dwReserved、および pwchReserved。

CharVal

対応する OLE DB 型インジケーターはありません。

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

SQL Server の char データ型と varchar データ型をサポートします。

次のメンバーを含みます。

sActualLength (SHORT)。pchCharVal が参照している文字列の実際の長さを指定します。 末尾の 0 は含まれません。

sMaxLength (SHORT)。pchCharVal が参照している文字列の最大の長さを指定します。

pchCharVal (CHAR *)。文字列を指すポインターです。

使用されないメンバー :

rgbReserved、dwReserved、および pwchReserved。

BinaryVal

対応する OLE DB 型インジケーターはありません。

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

SQL Server の binary データ型と varbinary データ型をサポートします。

次のメンバーを含みます。

sActualLength (SHORT)。prgbBinaryVal が参照しているデータの実際の長さを指定します。

sMaxLength (SHORT)。prgbBinaryVal が参照しているデータの最大の長さを指定します。

prgbBinaryVal (BYTE *)。バイナリ データを指すポインター。

使用されないメンバー : dwReserved。

UnknownType

未使用

未使用

未使用

未使用

BLOBType

未使用

未使用

未使用

未使用

関連項目

概念

データ型 (OLE DB)