다음을 통해 공유


XML 데이터 유형 사용

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

OLE DB 드라이버 다운로드

SQL Server 2005(9.x)에는 SQL Server 데이터베이스에 XML 문서 및 조각을 저장할 수 있는 xml 데이터 형식이 도입되었습니다. xml 데이터 형식은 SQL Server의 기본 제공 데이터 형식이며 intvarchar와 같은 다른 기본 제공 형식과 비슷합니다. 다른 기본 제공 형식과 마찬가지로 테이블을 만들 때 xml 데이터 형식을 열 형식으로, 변수 형식, 매개 변수 형식 또는 함수 반환 형식으로 사용하거나 CAST 및 CONVERT 함수에서 사용할 수 있습니다.

프로그래밍 고려 사항

XML은 문서의 인코딩을 지정하는 XML 헤더를 선택적으로 포함할 수 있다는 점을 자체적으로 설명할 수 있습니다. 예를 들면 다음과 같습니다.

<?xml version="1.0" encoding="windows-1252"?><doc/>

XML 표준은 문서의 처음 몇 바이트를 검사하여 XML 프로세서가 문서에 사용되는 인코딩을 검색하는 방법을 설명합니다. 애플리케이션에서 지정한 인코딩이 문서에 지정된 인코딩과 충돌하는 경우가 있을 수 있습니다. 바인딩된 매개 변수로 전달된 문서의 경우 XML은 SQL Server에서 이진 데이터로 처리되므로 변환이 이루어지지 않으며 XML 파서는 문제 없이 문서 내에 지정된 인코딩을 사용할 수 있습니다. 그러나 WSTR로 바인딩된 XML 데이터의 경우 애플리케이션은 문서가 유니코드로 인코딩되었는지 확인해야 합니다. 이 시나리오에서는 문서를 DOM에 로드하고, 인코딩을 유니코드로 변경하고, 문서를 직렬화해야 할 수 있습니다. 이 단계를 수행하지 않으면 데이터 변환이 발생하여 XML이 잘못되거나 손상될 수 있습니다.

XML이 리터럴에 지정된 경우에도 충돌이 발생할 수 있습니다. 예를 들어 다음이 잘못되었습니다.

INSERT INTO xmltable(xmlcol) VALUES('<?xml version="1.0" encoding="UTF-16"?><doc/>')

INSERT INTO xmltable(xmlcol) VALUES(N'<?xml version="1.0" encoding="UTF-8"?><doc/>')

SQL Server용 OLE DB 드라이버

DBTYPE_XML OLE DB Driver for SQL Server의 XML과 관련된 새 데이터 형식입니다. 또한 기존 OLE DB 유형의 DBTYPE_BYTES, DBTYPE_WSTR, DBTYPE_BSTR, DBTYPE_XML, DBTYPE_STR, DBTYPE_VARIANT 및 DBTYPE_IUNKNOWN 통해 XML 데이터에 액세스할 수 있습니다. XML 형식의 열에 저장된 데이터는 OLE DB Driver for SQL Server 행 집합의 열에서 다음 형식으로 검색할 수 있습니다.

  • 텍스트 문자열

  • ISequentialStream

참고 항목

OLE DB Driver for SQL Server는 SAX 판독기를 포함하지 않지만 ISequentialStream 은 MSXML의 SAX 및 DOM 개체에 쉽게 전달할 수 있습니다.

ISequentialStream 은 큰 XML 문서를 검색하는 데 사용해야 합니다. 다른 큰 값 형식에 사용되는 동일한 기술도 XML에 적용됩니다. 자세한 내용은 큰 값 형식 사용을 참조 하세요.

행 집합의 XML 형식 열에 저장된 데이터는 IRow::GetColumns, IRowChange::SetColumnsICommand::Execute 같은 일반 인터페이스를 통해 애플리케이션에 의해서도 검색, 삽입 또는 업데이트될 수 있습니다. 검색 사례와 마찬가지로 애플리케이션 프로그램은 텍스트 문자열 또는 ISequentialStream 을 OLE DB Driver for SQL Server에 전달할 수 있습니다.

참고 항목

문자열 형식의 XML 데이터를 ISequentialStream 인터페이스를 통해 보내려면 바인딩에서 DBTYPE_IUNKNOWN을 지정하고 해당 pObject 인수를 null로 설정하여 ISequentialStream을 가져와야 합니다.

소비자 버퍼가 너무 작아서 검색된 XML 데이터가 잘리면 길이가 0xffffffff 반환될 수 있습니다. 즉, 길이를 알 수 없습니다. 이 동작은 실제 데이터를 보내기 전에 길이 정보를 보내지 않고 클라이언트로 스트리밍되는 데이터 형식으로 구현하는 것과 같습니다. 경우에 따라 공급자가 IRowset::GetData와 같은 전체 값을 버퍼링하고 데이터 변환이 수행되는 경우 실제 길이가 반환될 수 있습니다.

SQL Server로 전송된 XML 데이터는 서버에서 이진 데이터로 처리됩니다. 이 동작은 변환이 발생하지 않도록 하고 XML 파서가 XML 인코딩을 자동으로 검색할 수 있도록 합니다. 이렇게 하면 더 넓은 범위의 XML 문서(예: UTF-8로 인코딩된 문서)를 SQL Server에 대한 입력으로 수락할 수 있습니다.

입력 XML이 DBTYPE_WSTR 바인딩된 경우 애플리케이션은 원치 않는 데이터 변환으로 인해 손상될 가능성을 방지하기 위해 이미 유니코드로 인코딩되었는지 확인해야 합니다.

데이터 바인딩 및 강제 변환

다음 표에서는 SQL Server xml 데이터 형식과 함께 나열된 데이터 형식을 사용할 때 발생하는 바인딩 및 강제 변환에 대해 설명합니다.

데이터 형식 To Server

XML
To Server

비 XML
서버에서

XML
서버에서

비 XML
DBTYPE_XML 6,7을 통과합니다. 오류1 OK11, 6 오류8
DBTYPE_BYTES 6,7을 통과합니다. 해당 없음2 OK 11, 6 N/A 2
DBTYPE_WSTR 6,10을 통과합니다. N/A 2 OK4, 6, 12 N/A 2
DBTYPE_BSTR 6,10을 통과합니다. N/A 2 확인 3 N/A 2
DBTYPE_STR OK6, 9, 10 N/A 2 OK5, 6, 12 N/A 2
DBTYPE_IUNKNOWN ISequentialStream을 통한 바이트 스트림7 N/A 2 ISequentialStream11을 통한 바이트 스트림 N/A 2
DBTYPE_VARIANT(VT_UI1 | VT_ARRAY) 6,7을 통과합니다. N/A 2 해당 없음 N/A 2
DBTYPE_VARIANT (VT_BSTR) 6,10을 통과합니다. N/A 2 확인3 N/A 2

1DBTYPE_XML 이외의 서버 형식이 ICommandWithParameters::SetParameterInfo로 지정되고 접근자 형식이 DBTYPE_XML 경우 문이 실행될 때 오류가 발생합니다(DB_E_ERRORSOCCURRED 매개 변수 상태는 DBSTATUS_E_BADACCESSOR) 그렇지 않으면 데이터가 서버로 전송되지만 서버는 XML에서 매개 변수의 데이터 형식으로 암시적으로 변환되지 않음을 나타내는 오류를 반환합니다.

2이 문서의 범위를 벗어납니다.

3형식은 UTF-16, BOM(바이 순서 표시 없음), 인코딩 사양 없음, null 종료 없음입니다.

4형식은 UTF-16, BOM 없음, 인코딩 사양 없음, null 종료입니다.

5형식은 null 종결자를 사용하여 클라이언트 코드 페이지에서 인코딩된 멀티바이트 문자입니다. 서버 제공 유니코드에서 변환하면 데이터가 손상될 수 있으므로 이 바인딩은 권장되지 않습니다.

6BY_REF 사용할 수 있습니다.

7UTF-16 데이터는 BOM으로 시작해야 합니다. 그렇지 않으면 서버에서 인코딩을 올바르게 인식하지 못할 수 있습니다.

8유효성 검사는 만들기 접근자 시간 또는 인출 시 발생할 수 있습니다. 오류가 DB_E_ERRORSOCCURRED 바인딩 상태가 DBBINDSTATUS_UNSUPPORTEDCONVERSION 설정됩니다.

9데이터는 서버로 전송되기 전에 클라이언트 코드 페이지를 사용하여 유니코드로 변환됩니다. 문서 인코딩이 클라이언트 코드 페이지와 일치하지 않으면 데이터 손상이 발생할 수 있으므로 이 바인딩은 권장되지 않습니다.

10BOM은 항상 서버로 전송되는 데이터에 추가됩니다. 데이터가 이미 BOM으로 시작된 경우 버퍼의 시작 부분에 두 개의 BOM이 있습니다. 서버는 첫 번째 BOM을 사용하여 인코딩을 UTF-16으로 인식한 다음 삭제합니다. 두 번째 BOM은 너비가 0이 아닌 공백 문자로 해석됩니다.

11형식이 UTF-16이고 인코딩 사양을 포함하지 않으며 서버에서 받은 데이터에 BOM이 추가됩니다. 서버에서 빈 문자열을 반환하더라도 BOM이 애플리케이션에 반환됩니다. 버퍼 길이가 홀수 바이트이면 데이터가 올바르게 잘립니다. 전체 값이 청크로 반환되면 연결해서 올바른 값으로 다시 구성할 수 있습니다.

12버퍼 길이가 2자 미만이면, 즉 null 종결을 포함할 공간이 충분하지 않으면 오버플로 오류가 보고됩니다.

참고 항목

NULL XML 값에 대한 데이터가 반환되지 않습니다.

XML 표준을 따르려면 UTF-16로 인코딩된 XML이 BOM(바이트 순서 표시), 즉 UTF-16 문자 코드 0xFEFF로 시작해야 합니다. WSTR 및 BSTR 바인딩으로 작업할 때 OLE DB Driver for SQL Server는 바인딩에 의해 인코딩이 암시되므로 BOM을 필요하거나 추가하지 않습니다. BYTES, XML 또는 IUNKNOWN 바인딩을 사용하는 경우 다른 XML 프로세서 및 스토리지 시스템을 간단하게 처리할 수 있습니다. 이 경우 BOM은 UTF-16으로 인코딩된 XML과 함께 있어야 하며, 대부분의 XML 프로세서(SQL Server 포함)는 값의 처음 몇 바이트를 검사하여 인코딩을 추론하므로 애플리케이션은 실제 인코딩과 관련이 없습니다. BYTES, XML 또는 IUNKNOWN 바인딩을 사용하여 SQL Server용 OLE DB 드라이버에서 받은 XML 데이터는 항상 UTF-16으로 인코딩되고 BOM을 포함하며 인코딩 선언을 포함하지 않습니다.

OLE DB 핵심 서비스(IDataConvert)에서 제공하는 데이터 변환은 DBTYPE_XML 적용할 수 없습니다.

유효성 검사는 데이터를 서버로 보낼 때 수행됩니다. 클라이언트 쪽 유효성 검사 및 인코딩 변경 내용은 애플리케이션에서 처리해야 합니다. XML 데이터를 직접 처리하지 않고 대신 DOM 또는 SAX 판독기를 사용하여 처리하는 것이 좋습니다.

DBTYPE_NULL 및 DBTYPE_EMPTY 입력 매개 변수에 바인딩할 수 있지만 출력 매개 변수 또는 결과에는 바인딩할 수 없습니다. 입력 매개 변수에 대해 바인딩할 경우 상태를 DBSTATUS_S_ISNULL 또는 DBSTATUS_S_DEFAULT로 설정해야 합니다.

DBTYPE_XML DBTYPE_EMPTY 및 DBTYPE_NULL 변환할 수 DBTYPE_EMPTY DBTYPE_XML 변환할 수 있지만 DBTYPE_NULL DBTYPE_XML 변환할 수 없습니다. 이는 DBTYPE_WSTR 일치합니다.

앞의 표에서 볼 수 있듯이 DBTYPE_IUNKNOWN은 지원되는 바인딩이지만 DBTYPE_XML과 DBTYPE_IUNKNOWN 간에는 변환이 수행되지 않습니다. DBTYPE_IUNKNOWN DBTYPE_BYREF 사용할 수 없습니다.

OLE DB 행 집합 추가 및 변경 내용

SQL Server용 OLE DB 드라이버는 많은 핵심 OLE DB 스키마 행 집합에 새 값 또는 변경 내용을 추가합니다.

COLUMNS 및 PROCEDURE_PARAMETERS 스키마 행 집합

COLUMNS 및 PROCEDURE_PARAMETERS 스키마 행 집합에 추가된 열은 다음과 같습니다.

열 이름 Type 설명
SS_XML_SCHEMACOLLECTION_CATALOGNAME DBTYPE_WSTR XML 스키마 컬렉션이 정의된 카탈로그의 이름입니다. XML이 아닌 열 또는 형식화되지 않은 XML 열의 경우 NULL입니다.
SS_XML_SCHEMACOLLECTION_SCHEMANAME DBTYPE_WSTR XML 스키마 컬렉션이 정의된 스키마의 이름입니다. XML이 아닌 열 또는 형식화되지 않은 XML 열의 경우 NULL입니다.
SS_XML_SCHEMACOLLECTIONNAME DBTYPE_WSTR XML 스키마 컬렉션의 이름입니다. XML이 아닌 열 또는 형식화되지 않은 XML 열의 경우 NULL입니다.

PROVIDER_TYPES 스키마 행 집합

PROVIDER_TYPES 스키마 행 집합에서는 xml 데이터 형식에 대한 COLUMN_SIZE 값이 0이고 DATA_TYPE이 DBTYPE_XML입니다.

SS_XMLSCHEMA 스키마 행 집합

새로운 스키마 행 집합인 SS_XMLSCHEMA는 클라이언트가 XML 스키마 정보를 검색할 수 있도록 도입되었습니다. SS_XMLSCHEMA 행 집합에는 다음 열이 포함됩니다.

열 이름 Type 설명
SCHEMACOLLECTION_CATALOGNAME DBTYPE_WSTR XML 컬렉션이 속한 카탈로그입니다.
SCHEMACOLLECTION_SCHEMANAME DBTYPE_WSTR XML 컬렉션이 속한 스키마입니다.
SCHEMACOLLECTIONNAME DBTYPE_WSTR 형식화된 XML 열에 대해서는 XML 스키마 컬렉션의 이름이고, 그렇지 않으면 NULL입니다.
TARGETNAMESPACEURI DBTYPE_WSTR XML 스키마의 대상 이름 공간입니다.
SCHEMACONTENT DBTYPE_WSTR XML 스키마 콘텐츠입니다.

각 XML 스키마는 카탈로그 이름, 스키마 이름, 스키마 컬렉션 이름 및 대상 이름 공간 URI(Uniform Resource Identifier)로 범위가 지정됩니다. 또한 이름이 DBSCHEMA_XML_COLLECTIONS 새 GUID도 정의됩니다. SS_XMLSCHEMA 스키마 행 집합에 대한 제한 및 제한된 열 수는 다음과 같이 정의됩니다.

GUID 제한 횟수 제한된 열
DBSCHEMA_XML_COLLECTIONS 4 SCHEMACOLLECTION_CATALOGNAME

SCHEMACOLLECTION_SCHEMANAME

SCHEMACOLLECTIONNAME

TARGETNAMESPACEURI

OLE DB 속성 집합 추가 및 변경 내용

OLE DB Driver for SQL Server는 많은 핵심 OLE DB 속성 집합에 새 값 또는 변경 내용을 추가합니다.

DBPROPSET_SQLSERVERPARAMETER 속성 집합

OLE DB를 통해 xml 데이터 형식을 지원하기 위해 OLE DB Driver for SQL Server는 다음 값을 포함하는 새 DBPROPSET_SQLSERVERPARAMETER 속성 집합을 구현합니다.

속성 형식 설명
SSPROP_PARAM_XML_SCHEMACOLLECTION_CATALOGNAME DBTYPE_WSTR XML 스키마 컬렉션이 정의된 카탈로그(데이터베이스)의 이름입니다. SQL 세 부분으로 구성된 이름 식별자의 일부입니다.
SSPROP_PARAM_XML_SCHEMACOLLECTION_SCHEMANAME DBTYPE_WSTR 스키마 컬렉션 내의 XML 스키마 이름입니다. SQL의 세 부분으로 구성된 이름 식별자의 일부입니다.
SSPROP_PARAM_XML_SCHEMACOLLECTIONNAME DBTYPE_WSTR 카탈로그 내 XML 스키마 컬렉션의 이름입니다. SQL의 세 부분으로 구성된 이름 식별자의 일부입니다.

DBPROPSET_SQLSERVERCOLUMN 속성 집합

ITableDefinition 인터페이스를 통한 테이블 생성을 지원하기 위해 SQL Server용 OLE DB 드라이버는 DBPROPSET_SQLSERVERCOLUMN 속성 집합에 세 개의 새로운 열을 추가합니다.

속성 형식 설명
SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME VT_BSTR 형식화된 XML 열에 대해서는 이 속성이 XML 스키마가 저장된 카탈로그의 이름을 지정하는 문자열입니다. 다른 열 형식의 경우 이 속성은 빈 문자열을 반환합니다.
SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME VT_BSTR 형식화된 XML 열의 경우 이 속성은 이 열을 정의하는 XML 스키마의 이름을 지정하는 문자열입니다.
SSPROP_COL_XML_SCHEMACOLLECTIONNAME VT_BSTR 형식화된 XML 열의 경우 이 속성은 값을 정의하는 스키마 XML 스키마 컬렉션의 이름을 지정하는 문자열입니다.

SSPROP_PARAM 값과 마찬가지로 이러한 모든 속성은 선택 사항이며 기본적으로 비어 있습니다. SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME 및 SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME SSPROP_COL_XML_SCHEMACOLLECTIONNAME 지정된 경우에만 지정할 수 있습니다. XML을 서버에 전달할 때 이러한 값이 포함된 경우 현재 데이터베이스에 대한 존재(유효성)가 확인되고 인스턴스 데이터가 스키마에 대해 검사됩니다. 모든 경우에 유효하려면 모두 비어 있거나 모두 채워집니다.

OLE DB 인터페이스 추가 및 변경 내용

OLE DB Driver for SQL Server는 여러 핵심 OLE DB 인터페이스에 새 값 또는 변경 사항을 추가합니다.

ISSCommandWithParameters 인터페이스

OLE DB를 통해 xml 데이터 형식을 지원하기 위해 SQL Server용 OLE DB 드라이버는 ISSCommandWithParameters 인터페이스의 추가를 비롯하여 많은 변경을 구현합니다. 이 새 인터페이스는 핵심 OLE DB 인터페이스인 ICommandWithParameters에서 상속됩니다. ICommandWithParameters에서 상속된 세 가지 메서드 외에; GetParameterInfo, MapParameterNamesSetParameterInfo; ISSCommandWithParameters는 서버별 데이터 형식을 처리하는 데 사용되는 GetParameterPropertiesSetParameterProperties 메서드를 제공합니다.

참고 항목

또한 ISSCommandWithParameters 인터페이스는 새 SSPARAMPROPS 구조를 사용합니다.

IColumnsRowset 인터페이스

OLE DB Driver for SQL Server는 IColumnRowset::GetColumnsRowset 메서드에서 반환된 행 집합에 다음 SQL Server 관련 열을 추가합니다. 이러한 열에는 XML 스키마 컬렉션의 세 부분으로 구성된 이름이 포함됩니다. XML이 아닌 열 또는 형식화되지 않은 XML 열의 경우 세 열 모두 NULL의 기본값을 사용합니다.

열 이름 Type 설명
DBCOLUMN_SS_XML_SCHEMACOLLECTION_CATALOGNAME DBTYPE_WSTR XML 스키마 컬렉션이 속한 카탈로그

그렇지 않으면 NULL입니다.
DBCOLUMN_SS_XML_SCHEMACOLLECTION_SCHEMANAME DBTYPE_WSTR XML 스키마 컬렉션이 속한 스키마입니다. 그렇지 않으면 NULL입니다.
DBCOLUMN_SS_XML_SCHEMACOLLECTIONNAME DBTYPE_WSTR 형식화된 XML 열에 대해서는 XML 스키마 컬렉션의 이름이고, 그렇지 않으면 NULL입니다.

IRowset 인터페이스

XML 열의 XML 인스턴스는 IRowset::GetData 메서드를 통해 검색됩니다. 클라이언트에서 지정한 바인딩에 따라 XML 인스턴스가 DBTYPE_BSTR, DBTYPE_WSTR, DBTYPE_VARIANT, DBTYPE_XML, DBTYPE_STR, DBTYPE_BYTES로 검색되거나 DBTYPE_IUNKNOWN을 통해 인터페이스로 검색될 수 있습니다. 소비자가 DBTYPE_BSTR, DBTYPE_WSTR 또는 DBTYPE_VARIANT 지정하는 경우 공급자는 XML 인스턴스를 사용자가 요청한 형식으로 변환하고 해당 바인딩에 지정된 위치에 배치합니다.

소비자가 DBTYPE_IUNKNOWN 지정하고 pObject 인수를 NULL로 설정하거나 pObject 인수를 IID_ISequentialStream 설정하면 공급자는 소비자가 열에서 XML 데이터를 스트리밍할 수 있도록 소비자에게 ISequentialStream 인터페이스를 반환합니다. 그러면 ISequentialStream이 XML 데이터를 유니코드 문자 스트림으로 반환합니다.

DBTYPE_IUNKNOWN 바인딩된 XML 값을 반환할 때 공급자는 크기 값을 sizeof (IUnknown *)보고합니다. 이 동작은 열이 DBTYPE_IUnknown 또는 DBTYPE_IDISPATCH로 바인딩되어 있는데 정확한 열 크기를 확인할 수 없는 경우 DBTYPE_IUNKNOWN/ISequentialStream이 취하는 방법과 같습니다.

IRowsetChange 인터페이스

소비자는 두 가지 방법으로 열의 XML 인스턴스를 업데이트할 수 있습니다. 첫 번째는 공급자가 만든 스토리지 개체 ISequentialStream 을 통해서입니다. 소비자는 ISequentialStream::Write 메서드를 호출하여 공급자가 반환한 XML 인스턴스를 직접 업데이트할 수 있습니다.

두 번째 방법은 IRowsetChange::SetData 또는 IRowsetChange::InsertRow 메서드를 사용하는 것입니다. 이 방법을 사용할 경우 소비자 버퍼의 XML 인스턴스를 DBTYPE_BSTR, DBTYPE_WSTR, DBTYPE_VARIANT, DBTYPE_XML 또는 DBTYPE_IUNKNOWN 유형의 바인딩에 지정할 수 있습니다.

DBTYPE_BSTR, DBTYPE_WSTR 또는 DBTYPE_VARIANT가 지정되는 경우 공급자가 소비자 버퍼의 XML 인스턴스를 적절한 열에 저장합니다.

DBTYPE_IUNKNOWN/ISequentialStream이 지정된 경우 소비자가 스토리지 개체를 지정하지 않으면 소비자는 ISequentialStream 개체를 미리 만들고 XML 문서를 개체와 바인딩한 다음 IRowsetChange::SetData 메서드를 통해 공급자에게 개체를 전달해야 합니다. 또한 소비자는 스토리지 개체를 만들고, pObject 인수를 IID_ISequentialStream 설정하고, ISequentialStream 개체를 만든 다음, IRowsetChange::SetData 메서드에 ISequentialStream 개체를 전달할 수 있습니다. 두 경우 모두 공급자는 ISequentialStream 개체를 통해 XML 개체를 검색하여 적절한 열에 삽입할 수 있습니다.

IRowsetUpdate 인터페이스

IRowsetUpdate 인터페이스는 지연된 업데이트에 사용할 수 있는 기능을 제공합니다. 소비자가 IRowsetUpdate::Update 메서드를 호출할 때까지 행 집합에서 사용할 수 있는 데이터는 다른 트랜잭션에서 사용할 수 없습니다.

IRowsetFind 인터페이스

IRowsetFind::FindNextRow 메서드는 xml 데이터 형식에 사용할 수 없습니다. hAccessor 인수에 DBTYPE_XML 열이 지정되어 IRowsetFind::FindNextRow가 호출되면 DB_E_BADBINDINFO가 반환되며 검색 중인 열의 형식에 관계없이 발생합니다. 이외 다른 바인딩 유형의 경우 검색하는 열이 xml 데이터 형식이면 FindNextRow가 실패하며 DB_E_BADCOMPAREOP가 반환됩니다.

참고 항목

SQL Server 기능용 OLE DB 드라이버
ISSCommandWithParameters(OLE DB)