Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Record in Blob (https://www.delphipraxis.net/216285-record-blob.html)

Edelfix 4. Dez 2024 11:10

Datenbank: ADS • Version: 12 • Zugriff über: ADS Komponent

Record in Blob
 
Hallo,
ich habe in meinem Programm mehrere Blob Felder in einer ADS Datenbank. In diesen Blob Feldern werden ganze Records gespeichert. So weit so gut. Beispiel:
Delphi-Quellcode:
Procedure PutBlob(Field:TField; P:Pointer; Size:Integer);
begin
          aMemoryStream.write(P^, Size);
          try
            aBlobStream := Field.DataSet.CreateBlobStream(Field as TBlobField, bmReadWrite);
            Field.Clear;
            aBlobStream.seek(0,soFromBeginning);
            aMemoryStream.SaveToStream(aBlobStream);
          except
           on e:exception do
             MessageDLG(Field.Fieldname+': '+'Fehler bei Blob schreiben'+#13#10+e.Message,mtWarning,[mbOK],0);
          end;
end;
Jetzt soll mit der Datenbank auch ein PHP Programm arbeiten. Nun sind Records in PHP unbekannt.

Die Idee ist zusätzlich zu den Blob Feldern die Records in Memo Felder zu speichern. Ideal wäre als JSON Format. In Delphi 10.4 gibt es eine bequeme Möglichkeit Objekte in JSON zu transferieren. Aber nicht Records. Man könnte die Records in Klassen transferieren. Das würde aber den Ramen sprengen. Denn die Records sind massenweise im Projekt vorhanden.

Erste Frage: Ist das eine gute Idee?
Zweite Frage: Wie stelle ich das am besten an?

Der schöne Günther 4. Dez 2024 11:25

AW: Record in Blob
 
Ich bin mit der Json-(De)serialisierung die in der Standardbibliothek dabei ist nie warm geworden.

Das Ding hier hat mich bislang nie im Stich gelassen:

https://github.com/paolo-rossi/delphi-neon

Zitat:

Neon is a serialization library for Delphi that helps you to convert (back and forth) objects and other values to JSON. It supports simple Delphi types but also complex class and records.

Edelfix 4. Dez 2024 14:13

AW: Record in Blob
 
Das sieht vielversprechend aus. Vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz