Сохранение объекта в базе данных - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь сохранить и загрузить объект в поле базы данных типа BLOB. Это возможно? И если да, то как?

Пример:

Сохранение экземпляра vk.class.Offer.cls в DB-Table OfferHead
и загрузка objOffer типа vk.class.Offer.cls из DB- Таблица OfferHead.

Пробую следующий код:

   DEFINE VARIABLE objAngebot AS CLASS vk.class.Angebot NO-UNDO.
   DEFINE VARIABLE oObj       as MemPTR                 NO-UNDO.

   DEFINE BUFFER bAngKopf FOR AngKopf.

   COPY-LOB  bAngKopf.ank_ObjHandle TO oObj.
   objAngebot = CAST(oObj, vk.class.Angebot). 

1 Ответ

0 голосов
/ 17 августа 2020

Я заставил его работать, записав объект в файл и перечитав его обратно в БД.

COPY-LOB FROM bAngPos.anp_ObjHandle TO FILE cPfadPos.
  objInputStream = NEW Progress.IO.FileInputStream(cPfadPos).
  objSerializer = NEW Progress.IO.BinarySerializer().
  objAngebotPos = CAST(objSerializer:Deserialize(objInputStream), vk.class.AngebotPos) NO-ERROR.
  objInputStream:Close().
  OS-DELETE VALUE(cPfadPos).
...