Partager via


Structure SSVARIANT

La SSVARIANT structure, définie dans sqlncli.h, correspond à une valeur DBTYPE_SQLVARIANT dans le fournisseur OLEDB 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 de 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 de données pour les types OLE DB standard, consultez Indicateurs de type.

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 tinyinttype de données SQL Server.
sShortIntVal DBTYPE_I2 SHORT VT_SS_I2 Prend en charge le smallinttype de données SQL Server.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Prend en charge le inttype de données SQL Server.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Prend en charge le biginttype de données SQL Server.
fltRealVal DBTYPE_R4 float VT_SS_R4 Prend en charge le realtype de données SQL Server.
dblFloatVal DBTYPE_R8 double VT_SS_R8 Prend en charge le floattype de données SQL Server.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Prend en charge les money types de données et smallmoney SQL Server.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Prend en charge le bittype de données SQL Server.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Prend en charge le uniqueidentifiertype de données SQL Server.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Prend en charge le numerictype de données SQL Server.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Prend en charge le datetype de données SQL Server.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Prend en charge les smalldatetimetypes de données , datetimeet datetime2SQL Server.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Prend en charge le timetype de données SQL 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 datetime2type de données SQL Server.

Inclut les membres suivants :

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Spécifie la mise à l’échelle de la valeur tsDataTimeVal .
DateTimeOffsetVal DBTYPE_DBTIMESTAMPOFSET DBTIMESTAMPOFFSET VT_SS_DATETIMEOFFSET Prend en charge le datetimeoffsettype de données SQL Server.

Inclut les membres suivants :

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Spécifie la mise à 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 nchar types de données et nvarchar SQL 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 inutilisé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 char types de données et varchar SQL Server.

Inclut les membres suivants :

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

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

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 binary types de données et varbinary SQL Server.

Inclut les membres suivants :

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

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

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

Membre inutilisé : dwReserved.
UnknownType UNUSED UNUSED UNUSED UNUSED
BLOBType UNUSED UNUSED UNUSED UNUSED

Voir aussi

Types de données (OLE DB)