Partager via


Structure SSVARIANT

La structure SSVARIANT, qui est définie dans sqlncli.h, correspond à une valeur DBTYPE_SQLVARIANT dans le fournisseur OLE DB SQL Server Native Client.

SSVARIANT est une union de discrimination. En fonction de la valeur du membre vt, le consommateur peut identifier le membre à lire. Les valeurs vt correspondent aux types de données SQL Server. Par conséquent, la structure SSVARIANT peut contenir tout type SQL Server. Pour plus d'informations sur la structure des données pour les types OLE DB standard, consultez Type Indicators (en anglais).

Notes

Lorsque DataTypeCompat==80, plusieurs sous-types SSVARIANT deviennent des chaînes. Par exemple, les valeurs vt suivantes apparaissent dans SSVARIANT en tant que VT_SS_WVARSTRING :

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Lorsque DateTypeCompat == 0, ces types s'affichent sous leur forme native.

Pour plus d'informations sur SSPROP_INIT_DATATYPECOMPATIBILITY, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.

Le fichier sqlncli.h contient des macros d'accès de type Variant qui simplifient l'annulation de la référence des types de membres dans la structure SSVARIANT. Un exemple est V_SS_DATETIMEOFFSET, que vous pouvez utiliser comme suit :

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

Pour obtenir le jeu complet de macros d'accès pour chaque membre de la structure SSVARIANT, consultez le fichier sqlncli.hi.

Le tableau ci-dessous décrit les membres de la structure SSVARIANT :

Membre

Indicateur de type OLE DB

Type de données OLE DB C

Valeur vt

Commentaires

vt

SSVARTYPE

Spécifie le type de valeur contenu dans la structure SSVARIANT.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

Prend en charge le type de données tinyintSQL Server.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Prend en charge le type de données smallintSQL Server.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Prend en charge le type de données intSQL Server.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Prend en charge le type de données bigintSQL Server.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Prend en charge le type de données realSQL Server.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Prend en charge le type de données floatSQL Server.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Prend en charge les types de données money et smallmoneySQL Server.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Prend en charge le type de données bitSQL Server.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Prend en charge le type de données uniqueidentifierSQL Server.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Prend en charge le type de données numericSQL Server.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Prend en charge le type de données dateSQL Server.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Prend en charge les types de données smalldatetime, datetime et datetime2SQL Server.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Prend en charge le type de données timeSQL Server.

Inclut les membres suivants :

tTime2Val (DBTIME2)

bScale (BYTE) Spécifie l'échelle de la valeur tTime2Val.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

Prend en charge le type de données datetime2SQL Server.

Inclut les membres suivants :

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Spécifie l'échelle de la valeur tsDataTimeVal.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

Prend en charge le type de données datetimeoffsetSQL Server.

Inclut les membres suivants :

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Spécifie l'échelle de la valeur tsoDateTimeOffsetVal.

NCharVal

Aucun indicateur de type OLE DB correspondant.

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

Prend en charge les types de données nchar et nvarcharSQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle de la chaîne vers laquelle pwchNCharVal pointe. N'inclut pas le zéro de fin.

sMaxLength (SHORT) Spécifie la longueur maximale de la chaîne vers laquelle pwchNCharVal pointe.

pwchNCharVal (WCHAR *) Pointeur vers la chaîne.

Membres non utilisés : rgbReserved, dwReserved et pwchReserved.

CharVal

Aucun indicateur de type OLE DB correspondant.

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

Prend en charge les types de données char et varcharSQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle de la chaîne vers laquelle pchCharVal pointe. N'inclut pas le zéro de fin.

sMaxLength (SHORT) Spécifie la longueur maximale de la chaîne vers laquelle pchCharVal pointe.

pchCharVal (CHAR *) Pointeur vers la chaîne.

Membres non utilisés :

rgbReserved, dwReserved et pwchReserved.

BinaryVal

Aucun indicateur de type OLE DB correspondant.

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

Prend en charge les types de données binary et varbinarySQL Server.

Inclut les membres suivants :

sActualLength (SHORT) Spécifie la longueur réelle des données vers lesquelles prgbBinaryVal pointe.

sMaxLength (SHORT) Spécifie la longueur maximale des données vers lesquelles prgbBinaryVal pointe.

prgbBinaryVal (BYTE *) Pointeur vers les données binaires.

Membre non utilisé : dwReserved.

UnknownType

UNUSED

UNUSED

UNUSED

UNUSED

BLOBType

UNUSED

UNUSED

UNUSED

UNUSED

Voir aussi

Concepts