SSVARIANT-Struktur
Die SSVARIANT-Struktur, die in sqlncli.h definiert ist, entspricht einem DBTYPE_SQLVARIANT-Wert im OLE DB-Anbieter von SQL Server Native Client.
SSVARIANT ist eine unterscheidende Vereinigung. Abhängig vom Wert des vt-Members kann der Consumer feststellen, welcher Member gelesen werden soll. Die Werte für vt entsprechen den SQL Server-Datentypen. Die SSVARIANT-Struktur kann daher jeden SQL Server-Typ enthalten. Weitere Informationen zur Datenstruktur für OLE DB-Standardtypen finden Sie unter Type Indicators.
Hinweise
Wenn DataTypeCompat auf "80" festgelegt ist, werden verschiedene SSVARIANT-Untertypen zu Zeichenfolgen. Beispielsweise werden die folgenden vt-Werte in SSVARIANT als VT_SS_WVARSTRING angezeigt:
VT_SS_DATETIMEOFFSET
VT_SS_DATETIME2
VT_SS_TIME2
VT_SS_DATE
Wenn DateTypeCompat auf "0" festgelegt ist, werden diese Typen in ihrer systemeigenen Form angezeigt.
Weitere Informationen zu SSPROP_INIT_DATATYPECOMPATIBILITY finden Sie unter Verwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit SQL Server Native Client.
Die Datei sqlncli.h enthält VARIANT-Zugriffsmakros, die das Dereferenzieren der Elementtypen der SSVARIANT-Struktur vereinfachen. Beispielsweise können Sie V_SS_DATETIMEOFFSET folgendermaßen verwenden:
memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;
Den vollständigen Satz der Zugriffsmakros für jeden Member der SSVARIANT-Struktur finden Sie in der Datei sqlncli.hi.
In der folgenden Tabelle sind die Elemente der SSVARIANT-Struktur beschrieben.
Member |
OLE DB-Typindikator |
OLE DB-C-Datentyp |
vt-Wert |
Anmerkungen |
---|---|---|---|---|
vt |
SSVARTYPE |
Gibt den Typ des Werts in der SSVARIANT-Struktur an. |
||
bTinyIntVal |
DBTYPE_UI1 |
BYTE |
VT_SS_UI1 |
Unterstützt den tinyint-Datentyp von SQL Server. |
sShortIntVal |
DBTYPE_I2 |
SHORT |
VT_SS_I2 |
Unterstützt den smallint-Datentyp von SQL Server. |
lIntVal |
DBTYPE_I4 |
LONG |
VT_SS_I4 |
Unterstützt den int-Datentyp von SQL Server. |
llBigIntVal |
DBTYPE_I8 |
LARGE_INTEGER |
VT_SS_I8 |
Unterstützt den bigint-Datentyp von SQL Server. |
fltRealVal |
DBTYPE_R4 |
float |
VT_SS_R4 |
Unterstützt den real-Datentyp von SQL Server. |
dblFloatVal |
DBTYPE_R8 |
double |
VT_SS_R8 |
Unterstützt den float-Datentyp von SQL Server. |
cyMoneyVal |
DBTYPE_CY |
LARGE_INTEGER |
VT_SS_MONEY VT_SS_SMALLMONEY |
Unterstützt den money-Datentyp und den smallmoney-Datentyp von SQL Server. |
fBitVal |
DBTYPE_BOOL |
VARIANT_BOOL |
VT_SS_BIT |
Unterstützt den bit-Datentyp von SQL Server. |
rgbGuidVal |
DBTYPE_GUID |
GUID |
VT_SS_GUID |
Unterstützt den uniqueidentifier-Datentyp von SQL Server. |
numNumericVal |
DBTYPE_NUMERIC |
DB_NUMERIC |
VT_SS_NUMERIC |
Unterstützt den numeric-Datentyp von SQL Server. |
dDateVal |
DBTYPE_DATE |
DBDATE |
VT_SS_DATE |
Unterstützt den date-Datentyp von SQL Server. |
tsDateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 |
Unterstützt die Datentypen smalldatetime, datetime und datetime2 von SQL Server. |
Time2Val |
DBTYPE_DBTIME2 |
DBTIME2 |
VT_SS_TIME2 |
Unterstützt den time-Datentyp von SQL Server. Beinhaltet die folgenden Member: tTime2Val (DBTIME2) bScale (BYTE) Gibt den Maßstab für den tTime2Val-Wert an. |
DateTimeVal |
DBTYPE_DBTIMESTAMP |
DBTIMESTAMP |
VT_SS_DATETIME2 |
Unterstützt den datetime2-Datentyp von SQL Server. Beinhaltet die folgenden Member: tsDataTimeVal (DBTIMESTAMP) bScale (BYTE) Gibt den Maßstab für den tsDataTimeVal-Wert an. |
DateTimeOffsetVal |
DBTYPE_DBTIMESTAMPOFSET |
DBTIMESTAMPOFFSET |
VT_SS_DATETIMEOFFSET |
Unterstützt den datetimeoffset-Datentyp von SQL Server. Beinhaltet die folgenden Member: tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET) bScale (BYTE) Gibt den Maßstab für den tsoDateTimeOffsetVal-Wert an. |
NCharVal |
Kein entsprechender OLE DB-Typindikator. |
struct _NCharVal |
VT_SS_WVARSTRING, VT_SS_WSTRING |
Unterstützt den nchar-Datentyp und den nvarchar-Datentyp von SQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pwchNCharVal zeigt. Beinhaltet nicht den abschließenden Nullwert. sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pwchNCharVal zeigt. pwchNCharVal (WCHAR *) Zeiger auf die Zeichenfolge. Nicht verwendete Member: rgbReserved, dwReserved und pwchReserved. |
CharVal |
Kein entsprechender OLE DB-Typindikator. |
struct _CharVal |
VT_SS_STRING, VT_SS_VARSTRING |
Unterstützt den char-Datentyp und den varchar-Datentyp von SQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pchCharVal zeigt. Beinhaltet nicht den abschließenden Nullwert. sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pchCharVal zeigt. pchCharVal (CHAR *) Zeiger auf die Zeichenfolge. Nicht verwendete Member: rgbReserved, dwReserved und pwchReserved. |
BinaryVal |
Kein entsprechender OLE DB-Typindikator. |
struct _BinaryVal |
VT_SS_VARBINARY, VT_SS_BINARY |
Unterstützt den binary-Datentyp und den varbinary-Datentyp von SQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Daten an, auf die prgbBinaryVal zeigt. sMaxLength (SHORT) Gibt die maximale Länge der Daten an, auf die prgbBinaryVal zeigt. prgbBinaryVal (BYTE *) Zeiger auf die Binärdaten. Nicht verwendete Member: dwReserved. |
UnknownType |
NICHT VERWENDET |
NICHT VERWENDET |
NICHT VERWENDET |
NICHT VERWENDET |
BLOBType |
NICHT VERWENDET |
NICHT VERWENDET |
NICHT VERWENDET |
NICHT VERWENDET |