CXMLAccessor 클래스
사용자 데이터 저장소의 스키마 (내부 구조)에 대해 모르더라도 데이터 소스 문자열 데이터로 액세스할 수 있습니다.
class CXMLAccessor : public CDynamicStringAccessorW
Members
메서드
열 정보를 검색합니다. |
|
테이블의 전체 내용을 행을 검색합니다. |
설명
그러나 CXMLAccessor 다른 CDynamicStringAccessorW (태그) 데이터를 XML 형식으로 데이터 저장소에서 액세스 되는 모든 데이터는 변환 한다는.출력 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();
}
요구 사항
헤더: atldbcli.h