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 클래스