Использование TgdcStreamSaver

Материал из GedeminWiki
Версия от 17:39, 27 августа 2013; SYSDBA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Сохранение в поток

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

sub SaveRecordsToStream(gdcObject)
  dim Creator, StreamSaver, FileStream
  set Creator = new TCreator
 
  ' Создание файлового потока, &HFFFF - создать, или перезаписать файл
  set FileStream = Creator.GetObject(Array("d:\stream.dat", &HFFFF), "TFileStream", "")
 
  set StreamSaver = Creator.GetObject(nil, "TgdcStreamSaver", "")
  StreamSaver.Silent = True   ' не выводить лог и сообщения 
 
  gdcObject.First
  while not gdcObject.Eof
    call StreamSaver.AddObject(gdcObject, false) ' второй параметр отвечает за сохранение детальных объектов (false - не сохранять)
    gdcObject.Next
  wend
 
  StreamSaver.StreamFormat = "sttXML"         ' (sttBinaryNew | sttXML)
  call StreamSaver.SaveToStream(FileStream)    
 
end sub

Загрузка из потока

При загрузке информации из потока нет нужды предоставлять какой-либо бизнес-объект, то есть из любого места и любой формы можно загрузить информацию о любых объектах.

sub LoadRecordsFromStream
  dim Creator, StreamSaver, FileStream
  set Creator = new TCreator
 
  ' Создание файлового потока, &H0 - открыть только для чтения
  set FileStream = Creator.GetObject(Array("d:\stream.dat", &H0), "TFileStream", "")
 
  set StreamSaver = Creator.GetObject(nil, "TgdcStreamSaver", "")
  StreamSaver.Silent = False                      ' выводить лог и сообщения 
  StreamSaver.ReplaceRecordAnswer = mrYesToAll    ' по умолчанию заменять все объекты
 
  call StreamSaver.LoadFromStream(FileStream)
end sub
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты