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 |