CXMLAccessor 类

使你可在不了解数据存储的架构(基础结构)的情况下访问字符串数据形式的数据源。

语法

class CXMLAccessor : public CDynamicStringAccessorW

要求

标头: atldbcli.h

成员

方法

名称 描述
GetXMLColumnData 检索列信息。
GetXMLRowData 按行检索表的全部内容。

备注

但是,CXMLAccessorCDynamicStringAccessorW 的不同之处在于,前者将从数据存储访问的所有数据转换为 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();
}

CXMLAccessor::GetXMLColumnData

按列检索 XML 格式字符串数据形式的表的列类型信息。

语法

HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();

参数

strOutput
[out] 对包含要检索的列类型信息的字符串缓冲区的引用。 使用与数据存储的列名相匹配的 XML 标记名称,对该字符串进行了格式化。

返回值

标准 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] 指定是否在输出数据的末尾追加字符串的布尔值。

返回值

标准 HRESULT 值之一。

注解

下面显示如何将行数据设置为 XML 格式。 下面的 DATA 表示行数据。 使用移动方法移动到所需行。

<row>

<column name>DATA</column name>

</row>

另请参阅

OLE DB 使用者模板
OLE DB 使用者模板参考
CAccessor 类
CDynamicAccessor 类
CDynamicParameterAccessor 类
CDynamicStringAccessor 类
CDynamicStringAccessorA 类
CDynamicStringAccessorW 类
CManualAccessor 类