Структура 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 | НЕ ИСПОЛЬЗУЕТСЯ | НЕ ИСПОЛЬЗУЕТСЯ | НЕ ИСПОЛЬЗУЕТСЯ | НЕ ИСПОЛЬЗУЕТСЯ |
См. также
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру