Класс CXMLAccessor

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

Синтаксис

class CXMLAccessor : public CDynamicStringAccessorW

Требования

Заголовок: atldbcli.h

Участники

Методы

Имя Описание
GetXMLColumnData Извлекает сведения о столбце.
GetXMLRowData Извлекает все содержимое таблицы по строкам.

Замечания

Тем не менее, отличается от CDynamicStringAccessorW того, CXMLAccessor что он преобразует все данные, доступ к которым обращается из хранилища данных в виде 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