Поделиться через


Структура SSVARIANT

Структура SSVARIANT, определяемая в файле sqlncli.h, соответствует значению DBTYPE_SQLVARIANT в поставщике OLEDB для собственного клиента SQL Server.

SSVARIANT представляет собой избирательное соединение. В зависимости от значения элемента vt, объект-получатель может определить, какой элемент следует считывать. Значения vt соответствуют типам данных SQL Server. Таким образом, структура SSVARIANT может содержать любой тип SQL Server. Дополнительные сведения о структуре данных для стандартных типов OLE DB см. в разделе Индикаторы типов.

Замечания

Если DataTypeCompat==80, несколько подтипов SSVARIANT становятся строками. Например, следующие значения vt будут представлены в SSVARIANT в виде VT_SS_WVARSTRING:

  • VT_SS_DATETIMEOFFSET

  • VT_SS_DATETIME2

  • VT_SS_TIME2

  • VT_SS_DATE

Если DateTypeCompat == 0, то эти типы будут представлены в собственном формате.

Дополнительные сведения о SSPROP_INIT_DATATYPECOMPATIBILITY см. в разделе Использование ключевых слов строки соединения с собственным клиентом SQL Server.

Файл sqlncli.h содержит макросы для доступа к значениям variant, которые упрощают разыменование типов, входящих в структуру SSVARIANT. В качестве примера можно рассмотреть макрос V_SS_DATETIMEOFFSET, который можно использовать следующим образом:

memcpy(&V_SS_DATETIMEOFFSET(pssVar).tsoDateTimeOffsetVal, pDTO, cbNative);
V_SS_DATETIMEOFFSET(pssVar).bScale = bScale;

Полный набор макросов доступа для каждого элемента структуры SSVARIANT см. в файле sqlncli.hi.

Следующая таблица описывает элементы структуры SSVARIANT.

Элемент

Индикатор типа OLE DB

Тип данных OLE DB

Значение vt

Комментарии

vt

SSVARTYPE

Указывает тип значения, которое содержится в структуре SSVARIANT.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

Поддерживает тип данных SQL Servertinyint.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

Поддерживает тип данных SQL Serversmallint.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

Поддерживает тип данных SQL Serverint.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

Поддерживает тип данных SQL Serverbigint.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

Поддерживает тип данных SQL Serverreal.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

Поддерживает тип данных SQL Serverfloat.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

Поддерживает типы данных SQL Servermoney и smallmoney.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

Поддерживает тип данных SQL Serverbit.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

Поддерживает тип данных SQL Serveruniqueidentifier.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

Поддерживает тип данных SQL Servernumeric.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

Поддерживает тип данных SQL Serverdate.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

Поддерживает типы данных SQL Serversmalldatetime, datetime и datetime2.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

Поддерживает тип данных SQL Servertime.

Содержит следующие элементы:

tTime2Val (DBTIME2)

bScale (BYTE) Задает масштаб для значения tTime2Val.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

Поддерживает тип данных SQL Serverdatetime2.

Содержит следующие элементы:

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) Задает масштаб для значения tsDataTimeVal.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

Поддерживает тип данных SQL Serverdatetimeoffset.

Содержит следующие элементы:

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) Задает масштаб для значения tsoDateTimeOffsetVal.

NCharVal

Отсутствует соответствующий индикатор типа OLE DB.

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

Поддерживает типы данных SQL Servernchar и nvarchar.

Содержит следующие элементы:

sActualLength (SHORT) Указывает фактическую длину строки, на которую указывает параметр pwchNCharVal. Не содержит завершающего нуля.

sMaxLength (SHORT) Указывает максимальную длину строки, на которую указывает pwchNCharVal.

pwchNCharVal (WCHAR *) Указатель на строку.

Неиспользуемые элементы: rgbReserved, dwReserved и pwchReserved.

CharVal

Отсутствует соответствующий индикатор типа OLE DB.

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

Поддерживает типы данных SQL Serverchar и varchar.

Содержит следующие элементы:

sActualLength (SHORT) Указывает фактическую длину строки, на которую указывает pchCharVal. Не содержит завершающего нуля.

sMaxLength (SHORT) Указывает максимальную длину строки, на которую указывает pchCharVal.

pchCharVal (CHAR *) Указатель на строку.

Неиспользуемые элементы:

rgbReserved, dwReserved и pwchReserved.

BinaryVal

Отсутствует соответствующий индикатор типа OLE DB.

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

Поддерживает типы данных SQL Serverbinary и varbinary.

Содержит следующие элементы:

sActualLength (SHORT) Указывает фактическую длину строки, на которую указывает параметр prgbBinaryVal.

sMaxLength (SHORT) Указывает максимальную длину строки, на которую указывает параметр prgbBinaryVal.

prgbBinaryVal (BYTE *) Указатель на двоичные данные.

Неиспользуемый элемент: dwReserved.

UnknownType

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

BLOBType

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

НЕ ИСПОЛЬЗУЕТСЯ

См. также

Основные понятия