SSVARIANT-Struktur in SQL Server Native Client
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
Azure Synapse Analytics Analytics
Platform System (PDW)
Die in sqlncli.h definierte SSVARIANT-Struktur entspricht einem DBTYPE_SQLVARIANT Wert im SQL Server Native Client OLEDB-Anbieter.
SSVARIANT ist eine unterscheidende Union. Abhängig vom Wert des vt-Elements kann der Consumer feststellen, welches Element gelesen werden soll. vt-Werte entsprechen SQL Server-Datentypen. Die SSVARIANT-Struktur kann daher jeden SQL Server-Typ enthalten. Weitere Informationen zur Datenstruktur für standardmäßige OLE DB-Typen finden Sie unter Typindikatoren.
Bemerkungen
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 Verbindungszeichenfolgenstichwörtern mit SQL Server Native Client.
Die Datei "sqlncli.h" enthält Variantenzugriffsmakros, die das Ableiten der Membertypen in 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 von Zugriffsmakros für jedes Element der SSVARIANT-Struktur finden Sie in der Datei "sqlncli.hi".
In der folgenden Tabelle werden die Elemente der SSVARIANT-Struktur beschrieben:
Member | OLE DB-Typindikator | OLE DB-C-Datentyp | vt-Wert | Kommentare |
---|---|---|---|---|
vt | SSVARTYPE | Gibt den Typ des Werts in der SSVARIANT-Struktur an. | ||
bTinyIntVal | DBTYPE_UI1 | BYTE | VT_SS_UI1 | Unterstützt den tinyintSQL Server-Datentyp. |
sShortIntVal | DBTYPE_I2 | SHORT | VT_SS_I2 | Unterstützt den smallintSQL Server-Datentyp. |
lIntVal | DBTYPE_I4 | LONG | VT_SS_I4 | Unterstützt den intSQL Server-Datentyp. |
llBigIntVal | DBTYPE_I8 | LARGE_INTEGER | VT_SS_I8 | Unterstützt den bigintSQL Server-Datentyp. |
fltRealVal | DBTYPE_R4 | float | VT_SS_R4 | Unterstützt den realSQL Server-Datentyp. |
dblFloatVal | DBTYPE_R8 | double | VT_SS_R8 | Unterstützt den floatSQL Server-Datentyp. |
cyMoneyVal | DBTYPE_CY | LARGE_INTEGER | VT_SS_MONEY VT_SS_SMALLMONEY | Unterstützt die Datentypen money und smallmoneySQL Server. |
fBitVal | DBTYPE_BOOL | VARIANT_BOOL | VT_SS_BIT | Unterstützt den bitSQL Server-Datentyp. |
rgbGuidVal | DBTYPE_GUID | GUID | VT_SS_GUID | Unterstützt den uniqueidentifierSQL Server-Datentyp. |
numNumericVal | DBTYPE_NUMERIC | DB_NUMERIC | VT_SS_NUMERIC | Unterstützt den numericSQL Server-Datentyp. |
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 datetime2SQL Server. |
Time2Val | DBTYPE_DBTIME2 | DBTIME2 | VT_SS_TIME2 | Unterstützt den timeSQL Server-Datentyp. Beinhaltet die folgenden Member: tTime2Val (DBTIME2) bScale (BYTE) Gibt die Skalierung für den tTime2Val-Wert an. |
tsDateTimeVal | DBTYPE_DBTIMESTAMP | DBTIMESTAMP | VT_SS_DATETIME2 | Unterstützt den datetime2SQL Server-Datentyp. Beinhaltet die folgenden Member: tsDataTimeVal (DBTIMESTAMP) bScale (BYTE) Gibt die Skalierung für den tsDataTimeVal-Wert an. |
DateTimeOffsetVal | DBTYPE_DBTIMESTAMPOFSET | DBTIMESTAMPOFFSET | VT_SS_DATETIMEOFFSET | Unterstützt den datetimeoffsetSQL Server-Datentyp. Beinhaltet die folgenden Member: tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET) bScale (BYTE) Gibt die Skalierung für den tsoDateTimeOffsetVal-Wert an. |
NCharVal | Kein entsprechender OLE DB-Typindikator. | struct _NCharVal | VT_SS_WVARSTRING, VT_SS_WSTRING |
Unterstützt die Datentypen nchar und nvarcharSQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pwchNCharVal verweist. Beinhaltet nicht den abschließenden Nullwert. sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pwchNCharVal verweist. pwchNCharVal (WCHAR *) Zeiger auf die Zeichenfolge Nicht verwendete Member: rgbReserved, dwReserved und pwchReserved. |
CharVal | Kein entsprechender OLE DB-Typindikator. | struct_CharVal | VT_SS_WVARSTRING VT_SS_WVARSTRING |
Unterstützt die Datentypen char und varcharSQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Zeichenfolge an, auf die pchCharVal verweist. Beinhaltet nicht den abschließenden Nullwert. sMaxLength (SHORT) Gibt die maximale Länge der Zeichenfolge an, auf die pchCharVal verweist. 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 die Datentypen binary und varbinarySQL Server. Beinhaltet die folgenden Member: sActualLength (SHORT) Gibt die tatsächliche Länge der Daten an, auf die prgbBinaryVal verweist. sMaxLength (SHORT) Gibt die maximale Länge der Daten an, auf die prgbBinaryVal verweist. prgbBinaryVal (BYTE *) Zeiger auf die Binärdaten Nicht verwendeter Member: dwReserved. |
UnknownType | NICHT VERWENDET | NICHT VERWENDET | NICHT VERWENDET | NICHT VERWENDET |
BLOBType | NICHT VERWENDET | NICHT VERWENDET | NICHT VERWENDET | NICHT VERWENDET |