SSVARIANT 구조

sqlncli.h에 정의되어 있는 SSVARIANT 구조는 SQL Server Native Client OLEDB 공급자의 DBTYPE_SQLVARIANT 값에 해당합니다.

SSVARIANT는 판별 구조체입니다. vt 멤버의 값에 따라 소비자는 읽을 멤버를 결정할 수 있습니다. vt 값은 SQL Server 데이터 형식에 해당하므로 SSVARIANT 구조는 모든 SQL Server 형식을 보유할 수 있습니다. 표준 OLE DB 유형의 데이터 구조에 대한 자세한 내용은 유형 표시기(Type Indicator)를 참조하십시오.

주의

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 Native Client에서 연결 문자열 키워드 사용을 참조하십시오.

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 C 데이터 형식

vt 값

설명

vt

SSVARTYPE

SSVARIANT 구조에 포함된 값 유형을 지정합니다.

bTinyIntVal

DBTYPE_UI1

BYTE

VT_SS_UI1

tinyint SQL Server 데이터 형식을 지원합니다.

sShortIntVal

DBTYPE_I2

SHORT

VT_SS_I2

smallint SQL Server 데이터 형식을 지원합니다.

lIntVal

DBTYPE_I4

LONG

VT_SS_I4

int SQL Server 데이터 형식을 지원합니다.

llBigIntVal

DBTYPE_I8

LARGE_INTEGER

VT_SS_I8

bigint SQL Server 데이터 형식을 지원합니다.

fltRealVal

DBTYPE_R4

float

VT_SS_R4

real SQL Server 데이터 형식을 지원합니다.

dblFloatVal

DBTYPE_R8

double

VT_SS_R8

float SQL Server 데이터 형식을 지원합니다.

cyMoneyVal

DBTYPE_CY

LARGE_INTEGER

VT_SS_MONEY VT_SS_SMALLMONEY 

money 및 smallmoney SQL Server 데이터 형식을 지원합니다.

fBitVal

DBTYPE_BOOL

VARIANT_BOOL

VT_SS_BIT

bit SQL Server 데이터 형식을 지원합니다.

rgbGuidVal

DBTYPE_GUID

GUID

VT_SS_GUID

uniqueidentifier SQL Server 데이터 형식을 지원합니다.

numNumericVal

DBTYPE_NUMERIC

DB_NUMERIC

VT_SS_NUMERIC

numeric SQL Server 데이터 형식을 지원합니다.

dDateVal

DBTYPE_DATE

DBDATE

VT_SS_DATE

date SQL Server 데이터 형식을 지원합니다.

tsDateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_SMALLDATETIME VT_SS_DATETIME VT_SS_DATETIME2

smalldatetime, datetime 및 datetime2 SQL Server 데이터 형식을 지원합니다.

Time2Val

DBTYPE_DBTIME2

DBTIME2

VT_SS_TIME2

time SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

tTime2Val (DBTIME2)

bScale (BYTE) tTime2Val 값의 소수 자릿수를 지정합니다.

DateTimeVal

DBTYPE_DBTIMESTAMP

DBTIMESTAMP

VT_SS_DATETIME2

datetime2 SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

tsDataTimeVal (DBTIMESTAMP)

bScale (BYTE) tsDataTimeVal 값의 소수 자릿수를 지정합니다.

DateTimeOffsetVal

DBTYPE_DBTIMESTAMPOFSET

DBTIMESTAMPOFFSET

VT_SS_DATETIMEOFFSET

datetimeoffset SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

tsoDateTimeOffsetVal (DBTIMESTAMPOFFSET)

bScale (BYTE) tsoDateTimeOffsetVal 값의 소수 자릿수를 지정합니다.

NCharVal

해당하는 OLE DB 유형 표시기 없음

struct _NCharVal

VT_SS_WVARSTRING,

VT_SS_WSTRING

nchar 및 nvarchar SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

sActualLength (SHORT) pwchNCharVal이 가리키는 문자열에 대한 실제 길이를 지정합니다. 이 값은 0으로 끝나지 않습니다.

sMaxLength (SHORT) pwchNCharVal이 가리키는 문자열에 대한 최대 길이를 지정합니다.

pwchNCharVal (WCHAR *) 문자열에 대한 포인터입니다.

사용되지 않은 멤버: rgbReserved, dwReserved 및 pwchReserved.

CharVal

해당하는 OLE DB 유형 표시기 없음

struct _CharVal

VT_SS_STRING,

VT_SS_VARSTRING

char 및 varchar SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

sActualLength (SHORT) pchCharVal이 가리키는 문자열에 대한 실제 길이를 지정합니다. 이 값은 0으로 끝나지 않습니다.

sMaxLength (SHORT) pchCharVal이 가리키는 문자열에 대한 최대 길이를 지정합니다.

pchCharVal (CHAR *) 문자열에 대한 포인터입니다.

사용되지 않은 멤버:

rgbReserved, dwReserved 및 pwchReserved.

BinaryVal

해당하는 OLE DB 유형 표시기 없음

struct _BinaryVal

VT_SS_VARBINARY,

VT_SS_BINARY

binary 및 varbinary SQL Server 데이터 형식을 지원합니다.

포함되는 멤버는 다음과 같습니다.

sActualLength (SHORT) prgbBinaryVal이 가리키는 문자열에 대한 실제 길이를 지정합니다.

sMaxLength (SHORT) prgbBinaryVal이 가리키는 문자열에 대한 실제 길이를 지정합니다.

prgbBinaryVal (BYTE *) 이진 데이터에 대한 포인터입니다.

사용되지 않은 멤버: dwReserved.

UnknownType

UNUSED

UNUSED

UNUSED

UNUSED

BLOBType

UNUSED

UNUSED

UNUSED

UNUSED

참고 항목

개념

데이터 형식(OLE DB)