共用方式為


CXMLAccessor 類別

當您不知道資料存放區的架構(基礎結構)時,可讓您以字串數據的形式存取數據源。

語法

class CXMLAccessor : public CDynamicStringAccessorW

需求

標頭檔:atldbcli.h

成員

方法

名稱 描述
GetXMLColumnData 擷取數據行資訊。
GetXMLRowData 依數據列擷取數據表的整個內容。

備註

不過, 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();
}

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 下方代表數據列數據。 使用move方法移至所需的數據列。

<row>

<column name>DATA</column name>

</row>

另請參閱

OLE DB 消費者範本
OLE DB 消費者範本參考
CAccessor 類別
CDynamicAccessor 類別
CDynamicParameterAccessor 類別
CDynamicStringAccessor 類別
CDynamicStringAccessorA 類別
CDynamicStringAccessorW 類別
CManualAccessor 類別