Бөлісу құралы:


Структура SSVARIANT в собственном клиенте SQL Server

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Структура 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 содержит макросы доступа к вариантам, упрощающие отмену ссылок типов элементов в структуре 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.
bTinyIntVa DBTYPE_UI1 BYTE VT_SS_UI1 Поддерживает крошечный тип данных SQL Server.
sShortIntVal DBTYPE_I2 SHORT VT_SS_I2 Поддерживает небольшойтип данных SQL Server.
lIntVal DBTYPE_I4 LONG VT_SS_I4 Поддерживает тип данных intSQL Server.
llBigIntVal DBTYPE_I8 LARGE_INTEGER VT_SS_I8 Поддерживает тип данных bigintSQL Server.
fltRealVal DBTYPE_R4 float VT_SS_R4 Поддерживает реальный тип данных SQL Server.
dblFloatVal DBTYPE_R8 double VT_SS_R8 Поддерживает тип данных floatSQL Server.
cyMoneyVal DBTYPE_CY LARGE_INTEGER VT_SS_MONEY VT_SS_SMALLMONEY Поддерживает типы данных SQL Server с деньгами и небольшими деньгами.
fBitVal DBTYPE_BOOL VARIANT_BOOL VT_SS_BIT Поддерживает битовый тип данных SQL Server.
rgbGuidVal DBTYPE_GUID GUID VT_SS_GUID Поддерживает уникальныйтип данных SQL Server.
numNumericVal DBTYPE_NUMERIC DB_NUMERIC VT_SS_NUMERIC Поддерживает числовойтип данных SQL Server.
dDateVal DBTYPE_DATE DBDATE VT_SS_DATE Поддерживает тип данных SQL Server даты.
tsDateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2 Поддерживает типы данных SQL Server smalldatetime, datetime и datetime2.
Time2Val DBTYPE_DBTIME2 DBTIME2 VT_SS_TIME2 Поддерживает тип данных SQL Server времени.

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

tTime2Val (DBTIME2)

bScale (BYTE) задает масштаб для значения tTime2Val.
DateTimeVal DBTYPE_DBTIMESTAMP DBTIMESTAMP VT_SS_DATETIME2 Поддерживает тип данных datetime2SQL Server.

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

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) задает масштаб для значения tsDataTimeVal.
DateTimeOffsetVal DBTYPE_DBTIMESTAMPOFSET DBTIMESTAMPOFFSET VT_SS_DATETIMEOFFSET Поддерживает тип данных datetimeoffsetSQL Server.

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

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) задает масштаб для значения tsoDateTimeOffsetVal.
NCharVal Отсутствует соответствующий индикатор типа OLE DB. struct _NCharVal VT_SS_WVARSTRING,

VT_SS_WSTRING
Поддерживает типы данных nchar и nvarcharSQL Server.

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

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

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

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

Неиспользуемые элементы: rgbReserved, dwReserved и pwchReserved.
CharVal Отсутствует соответствующий индикатор типа OLE DB. struct _CharVal VT_SS_STRING,

VT_SS_VARSTRING
Поддерживает типы данных char и varcharSQL Server.

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

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

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

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

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

rgbReserved, dwReserved и pwchReserved.
BinaryVal Отсутствует соответствующий индикатор типа OLE DB. struct _BinaryVal VT_SS_VARBINARY,

VT_SS_BINARY
Поддерживает двоичные и варбинарные типы данных SQL Server.

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

sActualLength (SHORT) задает фактическую длину для данных, на которую указывает pwchNCharVal.

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

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

Неиспользуемый элемент: dwReserved.
UnknownType НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ
BLOBType НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ НЕ ИСПОЛЬЗУЕТСЯ

См. также

Типы данных (OLE DB)