CXMLAccessor 类

可以访问数据源作为字符串数据,如果您不知道数据存储区的架构 (基础结构)。

class CXMLAccessor : public CDynamicStringAccessorW

成员

a8f7s7hh.collapse_all(zh-cn,VS.110).gif方法

GetXMLColumnData

检索列信息。

GetXMLRowData

由行检索表的整个内容。

备注

但是, CXMLAccessorCDynamicStringAccessorW 的不同之处在于将数据存储区访问的所有数据作为 XML 格式的 (标记) 的数据。 对于输出特别有用于 XML 识别网页。 XML 标记名称将尽可能密切地与数据存储区的列名。

使用 CDynamicAccessor 方法获取列信息。 使用该列信息在运行时动态创建访问器。

该列信息存储在由此类创建并管理的缓冲区中。 使用 GetXMLRowData,获取列信息使用 GetXMLColumnData 或由行获取列数据。

示例

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

请参见

参考

CAccessor 类

CDynamicAccessor 类

CDynamicParameterAccessor 类

CDynamicStringAccessor 类

CDynamicStringAccessorA 类

CDynamicStringAccessorW 类

CManualAccessor 类

概念

OLE DB 使用者模板 (C++)

OLE DB使用者模板引用