다음을 통해 공유


CDynamicParameterAccessor 클래스

CDynamicAccessor 와 유사하지만 ICommandWithParameters 인터페이스를 호출하여 설정한 매개 변수 정보를 가져옵니다.

구문

class CDynamicParameterAccessor : public CDynamicAccessor

요구 사항

헤더: atldbcli.h

멤버

메서드

속성 설명
CDynamicParameterAccessor 생성자입니다.
GetParam 버퍼에서 매개 변수 데이터를 검색합니다.
GetParamCount 접근자에서 매개 변수 개수를 검색합니다.
GetParamIO 지정된 매개 변수가 입력 매개 변수인지 출력 매개 변수인지를 결정합니다.
GetParamLength 버퍼에 저장된 지정된 매개 변수의 길이를 검색합니다.
GetParamName 지정된 매개 변수의 이름을 검색합니다.
GetParamStatus 버퍼에 저장된 지정된 매개 변수의 상태를 검색합니다.
GetParamString 버퍼에 저장된 지정된 매개 변수의 문자열 데이터를 검색합니다.
GetParamType 지정된 매개 변수의 데이터 형식을 검색합니다.
SetParam 매개 변수 데이터를 사용하여 버퍼를 설정합니다.
SetParamLength 버퍼에 저장된 지정된 매개 변수의 길이를 설정합니다.
SetParamStatus 버퍼에 저장된 지정된 매개 변수의 상태를 설정합니다.
SetParamString 버퍼에 저장된 지정된 매개 변수의 문자열 데이터를 설정합니다.

설명

공급자는 이 클래스를 사용할 소비자에 대해 ICommandWithParameters 를 지원해야 합니다.

매개 변수 정보는 이 클래스로 만들고 관리하는 버퍼에 저장됩니다. GetParamGetParamType을 사용하여 버퍼에서 매개 변수 데이터를 가져옵니다.

이 클래스를 사용하여 SQL Server 저장 프로시저를 실행하고 출력 매개 변수 값을 가져오는 방법을 보여 주는 예제는 GitHub의 Microsoft VCSamples 리포지토리에 있는 DynamicConsumer 샘플 코드를 참조하세요.

CDynamicParameterAccessor::CDynamicParameterAccessor

생성자입니다.

구문

typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
   DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
   DBLENGTH nBlobSize = 8000 )
   : CDynamicAccessor(eBlobHandling, nBlobSize )

매개 변수

eBlobHandling
BLOB 데이터를 처리하는 방법을 지정합니다. 기본값은 DBBLOBHANDLING_DEFAULT. DBBLOBHANDLINGENUM 값에 대한 설명은 CDynamicAccessor::SetBlobHandling을 참조하세요.

nBlobSize
최대 BLOB 크기(바이트)입니다. 이 값에 대한 열 데이터는 BLOB으로 처리됩니다. 기본값은 8,000입니다. 자세한 내용은 CDynamicAccessor::SetBlobSizeLimit를 참조하세요.

설명

BLOB 처리에 대한 자세한 내용은 CDynamicAccessor::CDynamicAccessor 생성자를 참조하세요.

CDynamicParameterAccessor::GetParam

매개 변수 버퍼에서 지정된 매개 변수의 문자열이 아닌 데이터를 검색합니다.

구문

template <class ctype>bool GetParam(DBORDINAL nParam,
   ctype* pData) const throw();

template <class ctype> bool GetParam(TCHAR* pParamName,
   ctype* pData) const throw();

void* GetParam(DBORDINAL nParam) const throw();

void* GetParam(TCHAR* pParamName) const throw();

매개 변수

ctype
데이터 형식인 템플릿 매개 변수입니다.

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pParamName
[in] 매개 변수 이름입니다.

pData
[out] 버퍼에서 검색된 데이터를 포함하는 메모리에 대한 포인터입니다.

Return Value

비템플레이션 버전의 경우 버퍼에서 검색된 데이터가 포함된 메모리를 가리킵니다. 템플릿 버전에 대해 성공 또는 false 실패에 대해 반환 true 합니다.

버퍼에서 문자열이 아닌 매개 변수 데이터를 검색하는 데 사용합니다 GetParam . GetParamString을 사용하여 버퍼에서 문자열 매개 변수 데이터를 검색합니다.

CDynamicParameterAccessor::GetParamCount

버퍼에 저장된 매개 변수의 수를 검색합니다.

구문

DB_UPARAMS GetParamCount() const throw();

Return Value

매개 변수 수입니다.

CDynamicParameterAccessor::GetParamIO

지정된 매개 변수가 입력 매개 변수인지 출력 매개 변수인지를 결정합니다.

구문

bool GetParamIO(DBORDINAL nParam,
   DBPARAMIO* pParamIO) const throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pParamIO
지정된 매개 변수의 형식(입력 또는 출력)이 포함된 DBPARAMIO 변수에 대한 포인터입니다. 아래와 같이 정의됩니다.

typedef DWORD DBPARAMIO;

enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM   = 0,
    DBPARAMIO_INPUT      = 0x1,
    DBPARAMIO_OUTPUT     = 0x2
};

Return Value

성공 또는 false 실패에 대해 반환 true 합니다.

CDynamicParameterAccessor::GetParamLength

버퍼에 저장된 지정된 매개 변수의 길이를 검색합니다.

구문

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pLength
[out] 지정된 매개 변수의 길이(바이트)를 포함하는 변수에 대한 포인터입니다.

설명

첫 번째 재정의는 성공 또는 false 실패 시에 반환 true 됩니다. 두 번째 재정의는 매개 변수 길이를 포함하는 메모리를 가리킵니다.

CDynamicParameterAccessor::GetParamName

지정된 매개 변수의 이름을 검색합니다.

구문

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

Return Value

지정된 매개 변수의 이름입니다.

CDynamicParameterAccessor::GetParamStatus

버퍼에 저장된 지정된 매개 변수의 상태를 검색합니다.

구문

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pStatus
[out] 지정된 매개 변수의 DBSTATUS 상태를 포함하는 변수에 대한 포인터입니다. DBSTATUS 값에 대한 자세한 내용은 OLE DB 프로그래머 참조의 상태를 참조하거나 oledb.h에서 DBSTATUS를 검색합니다.

설명

첫 번째 재정의는 성공 또는 false 실패 시에 반환 true 됩니다. 두 번째 재정의는 지정된 매개 변수의 상태를 포함하는 메모리를 가리킵니다.

CDynamicParameterAccessor::GetParamString

버퍼에 저장된 지정된 매개 변수의 문자열 데이터를 검색합니다.

구문

bool GetParamString(DBORDINAL nParam,
   CSimpleStringA& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CSimpleStringW& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CHAR* pBuffer,
   size_t* pMaxLen) throw();

bool GetParamString(DBORDINAL nParam,
   WCHAR* pBuffer,
   size_t* pMaxLen) throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

strOutput
[out] 지정된 매개 변수의 ANSI(CSimpleStringA) 또는 유니코드(CSimpleStringW) 문자열 데이터입니다. 형식의 CString매개 변수를 전달해야 합니다. 예를 들면 다음과 같습니다.

CString MyString;
rs.GetParamString(1, MyString);

pBuffer
[out] 지정된 매개 변수의 ANSI(CHAR) 또는 WCHAR(유니코드) 문자열 데이터에 대한 포인터입니다.

pMaxLen
[out] pBuffer가 가리키는 버퍼의 크기에 대한 포인터입니다(종료 NULL 포함 문자).

설명

성공 또는 false 실패에 대해 반환 true 합니다.

pBuffer가 NULL인 경우 이 메서드는 pMaxLen이 가리키는 메모리에 필요한 버퍼 크기를 설정하고 데이터를 복사하지 않고 반환 true 합니다.

버퍼 pBuffer 가 전체 문자열을 포함할 만큼 크지 않으면 이 메서드가 실패합니다.

버퍼에서 문자열 매개 변수 데이터를 검색하는 데 사용합니다 GetParamString . GetParam을 사용하여 버퍼에서 문자열이 아닌 매개 변수 데이터를 검색합니다.

CDynamicParameterAccessor::GetParamType

지정된 매개 변수의 데이터 형식을 검색합니다.

구문

bool GetParamType(DBORDINAL nParam,
   DBTYPE* pType) const throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pType
[out] 지정된 매개 변수의 데이터 형식을 포함하는 변수에 대한 포인터입니다.

Return Value

성공 또는 false 실패에 대해 반환 true 합니다.

CDynamicParameterAccessor::SetParam

지정된(문자열이 아닌) 데이터를 사용하여 매개 변수 버퍼를 설정합니다.

구문

template <class ctype>
bool SetParam(DBORDINAL nParam,
   constctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

template <class ctype>
bool SetParam(TCHAR* pParamName,
   const ctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

매개 변수

ctype
데이터 형식인 템플릿 매개 변수입니다.

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예시:

WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";

CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);

pParamName
[in] 매개 변수 이름입니다.

pData
[in] 버퍼에 쓸 데이터를 포함하는 메모리에 대한 포인터입니다.

status
[in] DBSTATUS 열 상태입니다. DBSTATUS 값에 대한 자세한 내용은 OLE DB 프로그래머 참조의 상태를 참조하거나 oledb.h에서 DBSTATUS를 검색합니다.

Return Value

성공 또는 false 실패에 대해 반환 true 합니다.

버퍼에서 문자열이 아닌 매개 변수 데이터를 설정하는 데 사용합니다 SetParam . SetParamString을 사용하여 버퍼에서 문자열 매개 변수 데이터를 설정합니다.

CDynamicParameterAccessor::SetParamLength

버퍼에 저장된 지정된 매개 변수의 길이를 설정합니다.

구문

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

length
[in] 지정된 매개 변수의 길이(바이트)입니다.

설명

성공 또는 false 실패에 대해 반환 true 합니다.

CDynamicParameterAccessor::SetParamStatus

버퍼에 저장된 지정된 매개 변수의 상태를 설정합니다.

구문

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

status
[in] 지정된 매개 변수의 DBSTATUS 상태입니다. DBSTATUS 값에 대한 자세한 내용은 OLE DB 프로그래머 참조의 상태를 참조하거나 oledb.h에서 DBSTATUS를 검색합니다.

설명

성공 또는 false 실패에 대해 반환 true 합니다.

CDynamicParameterAccessor::SetParamString

버퍼에 저장된 지정된 매개 변수의 문자열 데이터를 설정합니다.

구문

bool SetParamString(DBORDINAL nParam,
   constCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
   constWCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();

매개 변수

nParam
[in] 매개 변수 번호입니다(1에서 오프셋). 매개 변수 0은 반환 값으로 예약됩니다. 매개 변수 번호는 SQL 또는 저장 프로시저 호출에서 해당 순서를 기준으로 하는 매개 변수의 인덱스입니다. 예제는 SetParam을 참조하세요.

pString
[in] 지정된 매개 변수의 ANSI(CHAR) 또는 WCHAR(유니코드) 문자열 데이터에 대한 포인터입니다. oledb.h에서 DBSTATUS를 참조하세요.

status
[in] 지정된 매개 변수의 DBSTATUS 상태입니다. DBSTATUS 값에 대한 자세한 내용은 OLE DB 프로그래머 참조의 상태를 참조하거나 oledb.h에서 DBSTATUS를 검색합니다.

설명

성공 또는 false 실패에 대해 반환 true 합니다.

SetParamString pString에 지정된 최대 크기보다 큰 문자열을 설정하려고 하면 실패합니다.

버퍼에서 문자열 매개 변수 데이터를 설정하는 데 사용합니다 SetParamString . SetParam을 사용하여 버퍼에 문자열이 없는 매개 변수 데이터를 설정합니다.

참고 항목

OLE DB 소비자 템플릿
OLE DB 소비자 템플릿 참조
CAccessor 클래스
CDynamicAccessor 클래스
CManualAccessor 클래스