Freigeben über


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

Siehe auch

Konzepte