Struttura SSVARIANT
La struttura SSVARIANT, definita in sqlncli.h, corrisponde a un valore DBTYPE_SQLVARIANT nel provider OLE DB di SQL Server Native Client.
SSVARIANT è un'unione discriminante. A seconda del valore del membro vt, il consumer può determinare il membro da leggere. I valori vt corrispondono ai tipi di dati di SQL Server. Pertanto, la struttura SSVARIANT può contenere qualsiasi tipo SQL Server. Per ulteriori informazioni sulla struttura dei dati per i tipi OLE DB standard, vedere Type Indicators.
Osservazioni
Quando DataTypeCompat==80, diversi sottotipi di SSVARIANT diventano stringhe. I valori vt seguenti vengono ad esempio visualizzati in SSVARIANT come VT_SS_WVARSTRING:
VT_SS_DATETIMEOFFSET
VT_SS_DATETIME2
VT_SS_TIME2
VT_SS_DATE
Quando DateTypeCompat == 0, questi tipi vengono visualizzati nel formato nativo.
Per ulteriori informazioni su SSPROP_INIT_DATATYPECOMPATIBILITY, vedere Utilizzo delle parole chiave delle stringhe di connessione con SQL Server Native Client.
Il file sqlncli.h contiene macro di accesso di tipo Variant che semplificano la risoluzione dei riferimenti ai tipi di membri nella struttura SSVARIANT. Un esempio è rappresentato da V_SS_DATETIMEOFFSET, che è possibile utilizzare come indicato di seguito:
memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;
Per il set completo di macro di accesso per ogni membro della struttura SSVARIANT, fare riferimento al file sqlncli.hi.
Nella tabella seguente vengono descritti i membri della struttura SSVARIANT:
Membro |
Indicatore del tipo OLE DB |
Tipo di dati C di OLE DB |
valore vt |
Commenti |
---|---|---|---|---|
vt |
SSVARTYPE |
Specifica il tipo di valore contenuto nella struttura SSVARIANT. |
||
bTinyIntVal |
DBTYPE_UI1 |
BYTE |
VT_SS_UI1 |
Supporta il tipo di dati tinyintSQL Server. |
sShortIntVal |
DBTYPE_I2 |
SHORT |
VT_SS_I2 |
Supporta il tipo di dati smallintSQL Server. |
lIntVal |
DBTYPE_I4 |
LONG |
VT_SS_I4 |
Supporta il tipo di dati intSQL Server. |
llBigIntVal |
DBTYPE_I8 |
LARGE_INTEGER |
VT_SS_I8 |
Supporta il tipo di dati bigintSQL Server. |
fltRealVal |
DBTYPE_R4 |
float |
VT_SS_R4 |
Supporta il tipo di dati realSQL Server. |
dblFloatVal |
DBTYPE_R8 |
double |
VT_SS_R8 |
Supporta il tipo di dati floatSQL Server. |
cyMoneyVal |
DBTYPE_CY |
LARGE_INTEGER |
VT_SS_MONEY VT_SS_SMALLMONEY |
Supporta i tipi di dati money e smallmoneySQL Server. |
fBitVal |
DBTYPE_BOOL |
VARIANT_BOOL |
VT_SS_BIT |
Supporta il tipo di dati bitSQL Server. |
rgbGuidVal |
DBTYPE_GUID |
GUID |
VT_SS_GUID |
Supporta il tipo di dati uniqueidentifierSQL Server. |
numNumericVal |
DBTYPE_NUMERIC |
DB_NUMERIC |
VT_SS_NUMERIC |
Supporta il tipo di dati numericSQL Server. |
dDateVal |
DBTYPE_DATE |
DBDATE |
VT_SS_DATE |
Supporta il tipo di dati dateSQL Server. |
tsDateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 |
Supporta i tipi di dati smalldatetime, datetime e datetime2SQL Server. |
Time2Val |
DBTYPE_DBTIME2 |
DBTIME2 |
VT_SS_TIME2 |
Supporta il tipo di dati timeSQL Server. Include i membri indicati di seguito: tTime2Val (DBTIME2) bScale (BYTE) Specifica la scala per il valore tTime2Val. |
DateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_DATETIME2 |
Supporta il tipo di dati datetime2SQL Server. Include i membri indicati di seguito: tsDataTimeVal (DBTIMESTAMP) bScale (BYTE) Specifica la scala per il valore tsDataTimeVal. |
DateTimeOffsetVal |
DBTYPE_DBTIMESTAMPOFSET |
DBTIMESTAMPOFFSET |
VT_SS_DATETIMEOFFSET |
Supporta il tipo di dati datetimeoffsetSQL Server. Include i membri indicati di seguito: tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET) bScale (BYTE) Specifica la scala per il valore tsoDateTimeOffsetVal. |
NCharVal |
Nessun indicatore del tipo OLE DB corrispondente. |
struct _NCharVal |
VT_SS_WVARSTRING, VT_SS_WSTRING |
Supporta i tipi di dati nchar e nvarcharSQL Server. Include i membri indicati di seguito: sActualLength (SHORT) Specifica la lunghezza effettiva per la stringa a cui punta pwchNCharVal. Non include lo zero finale. sMaxLength (SHORT) Specifica la lunghezza massima per la stringa a cui punta pwchNCharVal. pwchNCharVal (WCHAR *) Puntatore alla stringa. Membri non utilizzati: rgbReserved, dwReserved, e pwchReserved. |
CharVal |
Nessun indicatore del tipo OLE DB corrispondente. |
struct _CharVal |
VT_SS_STRING, VT_SS_VARSTRING |
Supporta i tipi di dati char e varcharSQL Server. Include i membri indicati di seguito: sActualLength (SHORT) Specifica la lunghezza effettiva per la stringa a cui punta pchCharVal. Non include lo zero finale. sMaxLength (SHORT) Specifica la lunghezza massima per la stringa a cui punta pchCharVal. pchCharVal (CHAR *) Puntatore alla stringa. Membri non utilizzati: rgbReserved, dwReserved e pwchReserved. |
BinaryVal |
Nessun indicatore del tipo OLE DB corrispondente. |
struct _BinaryVal |
VT_SS_VARBINARY, VT_SS_BINARY |
Supporta i tipi di dati binary e varbinarySQL Server. Include i membri indicati di seguito: sActualLength (SHORT) Specifica la lunghezza effettiva per i dati a cui punta prgbBinaryVal. sMaxLength (SHORT) Specifica la lunghezza massima per i dati a cui punta prgbBinaryVal. prgbBinaryVal (BYTE *) Puntatore ai dati binari. Membro non utilizzato: dwReserved. |
UnknownType |
UNUSED |
UNUSED |
UNUSED |
UNUSED |
BLOBType |
UNUSED |
UNUSED |
UNUSED |
UNUSED |