다음을 통해 공유


CDynamicStringAccessor 클래스

데이터베이스 스키마(데이터베이스의 내부 구조)에 대해 모를 때 데이터 소스에 액세스할 수 있습니다.

구문

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

요구 사항

헤더: atldbcli.h

멤버

메서드

속성 설명
GetString 지정된 열 데이터를 문자열로 검색합니다.
SetString 지정된 열 데이터를 문자열로 설정합니다.

설명

CDynamicAccessor는 공급자가 보고한 네이티브 형식으로 데이터를 요청하지만 공급자 CDynamicStringAccessor 가 데이터 저장소에서 액세스한 모든 데이터를 문자열 데이터로 가져오라고 요청합니다. 이는 데이터 저장소의 내용 표시 또는 인쇄와 같이 데이터 저장소의 값 계산이 필요하지 않은 간단한 작업에 특히 유용합니다.

데이터 저장소에 있는 열 데이터의 네이티브 형식은 중요하지 않습니다. 공급자가 데이터 변환을 지원할 수 있는 한 데이터를 문자열 형식으로 제공합니다. 공급자가 네이티브 데이터 형식에서 문자열로의 변환을 지원하지 않는 경우(일반적이지 않음) 요청 호출은 DB_S_ERRORSOCCURED 성공 값을 반환하고 해당 열의 상태는 DBSTATUS_E_CANTCONVERTVALUE 변환 문제를 나타냅니다.

메서드를 사용하여 CDynamicStringAccessor 열 정보를 가져옵니다. 이 열 정보를 사용하여 런타임에 동적으로 접근자를 만듭니다.

열 정보는 이 클래스에서 만들고 관리하는 버퍼에 저장됩니다. GetString을 사용하여 버퍼에서 데이터를 가져오거나 SetString을 사용하여 버퍼에 저장합니다.

동적 접근자 클래스 사용에 대한 토론 및 예제는 동적 접근자 사용을 참조 하세요.

CDynamicStringAccessor::GetString

지정된 열 데이터를 문자열로 검색합니다.

구문

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

매개 변수

nColumn
[in] 열 번호입니다. 열 번호는 1로 시작합니다. 값 0은 책갈피 열(있는 경우)을 참조합니다.

pColumnName
[in] 열 이름을 포함하는 문자열에 대한 포인터입니다.

Return Value

지정된 열에서 검색된 문자열 값에 대한 포인터입니다. 값은 형식BaseType이며, _UNICODE 정의되었는지 여부에 따라 CHAR 또는 WCHAR가 됩니다. 지정된 열을 찾을 수 없으면 NULL을 반환합니다.

설명

두 번째 재정의 양식은 열 이름을 ANSI 문자열로 사용합니다. 세 번째 재정의 양식은 열 이름을 유니코드 문자열로 사용합니다.

CDynamicStringAccessor::SetString

지정된 열 데이터를 문자열로 설정합니다.

구문

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

매개 변수

nColumn
[in] 열 번호입니다. 열 번호는 1로 시작합니다. 특수 값 0은 책갈피 열(있는 경우)을 참조합니다.

pColumnName
[in] 열 이름을 포함하는 문자열에 대한 포인터입니다.

data
[in] 지정된 열에 쓸 문자열 데이터에 대한 포인터입니다.

Return Value

지정된 열을 설정할 문자열 값에 대한 포인터입니다. 값은 형식BaseType이며, _UNICODE 정의되었는지 여부에 따라 CHAR 또는 WCHAR가 됩니다.

설명

두 번째 재정의 양식은 열 이름을 ANSI 문자열로 사용하고 세 번째 재정의 양식은 열 이름을 유니코드 문자열로 사용합니다.

_SECURE_ATL 값이 0이 아닌 값으로 정의된 경우 입력 데이터 문자열이 참조된 데이터 열의 최대 허용 길이보다 길면 런타임 어설션 오류가 생성됩니다. 그렇지 않으면 허용되는 최대 길이보다 긴 경우 입력 문자열이 잘립니다.

참고 항목

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