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 tinyint type de données SQL Server. |
sShortIntVal | DBTYPE_I2 | SHORT |
VT_SS_I2 |
Prend en charge le smallint type de données SQL Server. |
lIntVal | DBTYPE_I4 | LONG |
VT_SS_I4 |
Prend en charge le int type de données SQL Server. |
llBigIntVal | DBTYPE_I8 | LARGE_INTEGER |
VT_SS_I8 |
Prend en charge le bigint type de données SQL Server. |
fltRealVal | DBTYPE_R4 | float |
VT_SS_R4 |
Prend en charge le real type de données SQL Server. |
dblFloatVal | DBTYPE_R8 | double |
VT_SS_R8 |
Prend en charge le float type 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 bit type de données SQL Server. |
rgbGuidVal | DBTYPE_GUID | GUID |
VT_SS_GUID |
Prend en charge le uniqueidentifier type de données SQL Server. |
numNumericVal | DBTYPE_NUMERIC | DB_NUMERIC |
VT_SS_NUMERIC |
Prend en charge le numeric type de données SQL Server. |
dDateVal | DBTYPE_DATE | DBDATE |
VT_SS_DATE |
Prend en charge le date type de données SQL Server. |
tsDateTimeVal | DBTYPE_DBTIMESTAMP | DBTIMESTAMP |
VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 |
Prend en charge les smalldatetime types de données , datetime et datetime2 SQL Server. |
Time2Val | DBTYPE_DBTIME2 | DBTIME2 |
VT_SS_TIME2 |
Prend en charge le time type 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 datetime2 type 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 datetimeoffset type 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 |