Поделиться через


Класс CXMLAccessor

Позволяет доступа к источникам данных в виде строковых данных, когда неизвестна схема хранилища данных (базовая структура).

class CXMLAccessor : public CDynamicStringAccessorW

Члены

Методы

GetXMLColumnData

Извлекает сведения о столбцах.

GetXMLRowData

Извлекает все содержимое таблицы строками.

Заметки

Однако CXMLAccessor отличается от CDynamicStringAccessorW поскольку она преобразует все данные, получаемые доступ из хранилища данных, что представляют собой (помеченные тегами) данные. Это особенно полезно для вывода в зависимым к страницам. Имена тегов 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

См. также

Ссылки

Класс CAccessor

Класс CDynamicAccessor

Класс CDynamicParameterAccessor

Класс CDynamicStringAccessor

Класс CDynamicStringAccessorA

Класс CDynamicStringAccessorW

Класс CManualAccessor

Основные понятия

Шаблоны потребителей OLE DB (C++)

Ссылка на шаблоны потребителя OLE DB