CXMLAccessor 클래스
데이터 저장소의 스키마(기본 구조)에 대한 지식이 없는 경우 데이터 원본을 문자열 데이터로 액세스할 수 있습니다.
구문
class CXMLAccessor : public CDynamicStringAccessorW
요구 사항
헤더: atldbcli.h
멤버
메서드
속성 | 설명 |
---|---|
GetXMLColumnData | 열 정보를 검색합니다. |
GetXMLRowData | 테이블의 전체 내용을 행별로 검색합니다. |
설명
그러나 CXMLAccessor
데이터 저장소에서 액세스하는 모든 데이터를 XML 형식(태그 지정) 데이터로 변환한다는 점에서는 다릅니다 CDynamicStringAccessorW
. 이는 XML 인식 웹 페이지로 출력하는 데 특히 유용합니다. XML 태그 이름은 데이터 저장소의 열 이름과 최대한 가깝게 일치합니다.
메서드를 사용하여 CDynamicAccessor
열 정보를 가져옵니다. 이 열 정보를 사용하여 런타임에 동적으로 접근자를 만듭니다.
열 정보는 이 클래스에서 만들고 관리하는 버퍼에 저장됩니다. GetXMLColumnData를 사용하여 열 정보를 가져오거나 GetXMLRowData를 사용하여 행별로 열 데이터를 가져옵니다.
예시
void DoCXMLAccessorTest()
{
HRESULT hr = CoInitialize(NULL);
CDataSource ds;
CSession ss;
CTable<CXMLAccessor> rs;
// The following is an example initialization string:
hr = ds.OpenFromInitializationString(L"Provider=Microsoft.Jet.OLEDB.4.0;"
L"User ID=Admin;Data Source=Snippet.mdb;Mode=Share Deny None;"
L"Extended Properties=\"\";Jet OLEDB:System database=\"\";"
L"Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";"
L"Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"
L"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;"
L"Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;"
L"Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;"
L"Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False");
hr = ss.Open(ds);
hr = rs.Open(ss, L"Customer"); // Customer is a table name in the database.
CStringW strColumnInfo;
rs.GetXMLColumnData(strColumnInfo);
wprintf_s(L"%s\n", strColumnInfo);
hr = rs.MoveFirst();
while(SUCCEEDED(hr) && hr != DB_S_ENDOFROWSET)
{
CStringW strRowData;
rs.GetXMLRowData(strRowData);
wprintf_s(L"%s\n", strRowData);
hr = rs.MoveNext();
}
ss.Close();
ds.Close();
CoUninitialize();
}
CXMLAccessor::GetXMLColumnData
테이블의 열 형식 정보를 열별로 XML 형식 문자열 데이터로 검색합니다.
구문
HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();
매개 변수
strOutput
[out] 검색할 열 형식 정보를 포함하는 문자열 버퍼에 대한 참조입니다. 문자열은 데이터 저장소의 열 이름과 일치하는 XML 태그 이름으로 서식이 지정됩니다.
Return Value
표준 HRESULT 값 중 하나입니다.
설명
다음은 XML에서 열 형식 정보의 형식을 지정하는 방법을 보여줍니다. type
는 열의 데이터 형식을 지정합니다. 데이터 형식은 액세스 중인 데이터베이스가 아닌 OLE DB 데이터 형식을 기반으로 합니다.
<columninfo>
<column type = I2/> ColumnName
</columninfo>
CXMLAccessor::GetXMLRowData
테이블의 전체 내용을 XML 형식 문자열 데이터로 행별로 검색합니다.
구문
HRESULT GetXMLRowData(CSimpleStringW& strOutput,
bool bAppend = false) throw();
매개 변수
strOutput
[out] 검색할 테이블 데이터가 포함된 버퍼에 대한 참조입니다. 데이터는 데이터 저장소의 열 이름과 일치하는 XML 태그 이름을 가진 문자열 데이터로 형식이 지정됩니다.
bAppend
[in] 출력 데이터의 끝에 문자열을 추가할지 여부를 지정하는 부울 값입니다.
Return Value
표준 HRESULT 값 중 하나입니다.
설명
다음은 행 데이터의 형식을 XML로 지정하는 방법을 보여줍니다. DATA
아래는 행 데이터를 나타냅니다. 이동 메서드를 사용하여 원하는 행으로 이동합니다.
<row>
<column name>DATA</column name>
</row>
참고 항목
OLE DB 소비자 템플릿
OLE DB 소비자 템플릿 참조
CAccessor 클래스
CDynamicAccessor 클래스
CDynamicParameterAccessor 클래스
CDynamicStringAccessor Class
CDynamicStringAccessorA 클래스
CDynamicStringAccessorW 클래스
CManualAccessor 클래스