Partage via


Structure SSVARIANT dans SQL Server Native Client

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

La structure SSVARIANT, qui est 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. Ainsi, la structure SSVARIANT peut contenir n’importe quel type SQL Server. Pour plus d’informations sur la structure de données pour les types OLE DB standard, consultez Indicateurs de type.

Notes

Quand DataTypeCompat==80, plusieurs sous-types SSVARIANT deviennent des chaînes. Par exemple, les valeurs de 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 variantes qui simplifient le déréférencement 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 l’ensemble complet des macros d’accès pour chaque membre de la structure SSVARIANT , reportez-vous au fichier sqlncli.hi.

Le tableau suivant 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 pour 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 pour 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 pour 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 sur 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 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 sur 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 sur 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)