Сохранение записей в формате XML
Как и в формате ADTG, сохраняемость набора записей в формате XML реализуется с помощью поставщика сохраняемости Microsoft OLE DB. Этот поставщик создает набор строк только для чтения, доступный только для чтения, из сохраненного XML-файла или потока, который содержит сведения о схеме, созданные ADO. Аналогичным образом он может принимать набор записей ADO, создавать XML и сохранять его в файл или любой объект, реализующий интерфейс COM IStream . (На самом деле файл — это просто еще один пример объекта, поддерживающего IStream.) Для версий 2.5 и более поздних ADO использует средство синтаксического анализа XML Майкрософт (MSXML) для загрузки XML в набор записей. поэтому требуется msxml.dll.
Примечание
При сохранении иерархических наборов записей (фигур данных) в формате XML действуют некоторые ограничения. Сохранение в XML невозможно, если иерархический набор записей содержит ожидающие обновления и невозможно сохранить параметризованный иерархический набор записей. Дополнительные сведения см. в разделе Сохранение отфильтрованных и иерархических наборов записей.
Самый простой способ сохранить данные в XML и снова загрузить их с помощью ADO — использовать методы Save и Open соответственно. В следующем примере кода ADO показано сохранение данных из таблицы Titles в файл с именем titles.sav.
Dim rs as new Recordset
Dim rs2 as new Recordset
Dim c as new Connection
Dim s as new Stream
' Query the Titles table.
c.Open "provider=sqloledb;data source=MySQLServer;initial catalog=pubs;Integrated Security='SSPI'"
rs.cursorlocation = adUseClient
rs.Open "select * from titles", c, adOpenStatic
' Save to the file in the XML format. Note that if you don't specify
' adPersistXML, a binary format (ADTG) will be used by default.
rs.Save "titles.sav", adPersistXML
' Save the recordset into the ADO Stream object.
rs.save s, adPersistXML
rs.Close
c.Close
set rs = nothing
' Reopen the file.
rs.Open "titles.sav",,,,adCmdFile
' Open the Stream back into a Recordset.
rs2.open s
ADO всегда сохраняет весь объект Recordset . Если вы хотите сохранить подмножество строк объекта Recordset , используйте метод Filter , чтобы сузить строки или изменить предложение выбора. Однако необходимо открыть объект Recordset с курсором на стороне клиента (CursorLocation = adUseClient), чтобы использовать метод Filter для сохранения подмножества строк. Например, чтобы получить заголовки, начинающиеся с буквы "b", можно применить фильтр к открытому объекту Recordset :
rs.Filter "title_id like 'B*'"
rs.Save "btitles.sav", adPersistXML
ADO всегда использует набор строк клиентского обработчика курсоров для создания прокручиваемого объекта Recordset , доступного для закладки, поверх данных только для пересылки, созданных поставщиком сохраняемости.
Этот раздел содержит следующие подразделы.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по