4D v14

BLOBs

Home

 
4D v14
BLOBs

BLOBs    


 

 

Zusätzlich zu den Erläuterungen im Video sollten Sie folgendes beachten:

Zu Beginn stellen wir uns immer dieselben Fragen:

  • Welchem Zweck kann dies dienen und in welchen Zusammenhängen?
  • Ich weiß, wie ich "Teile" hinein bekomme, aber wie und in welcher Reihenfolge bekomme ich sie wieder heraus?

Befassen wir uns zuerst mit der zweiten Frage:

Auch wenn wir auf jedes Byte des BLOB zugreifen können, verwenden wir in den meisten Fällen das System "First In First Out", kurz FIFO genannt. Das heißt, Sie stellen den Inhalt des BLOB in der Reihenfolge wieder her, in der er in das BLOB gesetzt wurde.
Um das zu verdeutlichen, nehmen wir als Beispiel ein Buchregal, in das wir Objekte von links nach rechts einsortieren. Sie stellen zuerst ein schmales Buch auf der linken Seiten ab, dann ein breites Buch neben das erste Buch, dann ein anderes großes Buch, dann ein Bild Ihrer Schwiegermutter, ein Souvenir aus Ihrem letzten Sommerurlaub, etc. Kommt dann die Zeit zum Abstauben, denken Sie nicht darüber nach, wieviel Zentimeter vom linken Rand weg ein Objekt steht. Sie nehmen es vielmehr in der bestehenden Reihenfolge heraus und passen Staubtuch und Hand an den entstandenen Zwischenraum an.

Dasselbe passiert in einem BLOB, insbesondere weil Sie wissen, was Sie im BLOB abgelegt haben. Legen Sie eine Ganzzahl ab, sind es 2 Bytes. Bei einer langen Ganzzahl sind es 4 Bytes, bei einem Datum 6 Bytes. Für Text geben Sie an, wie Sie ihn ablegen wollen und wie die Textlänge ausgedrückt wird (C String, Pascal String, etc.).

Beim Wiederauslesen nehmen Sie die Information in derselben Reihenfolge wieder heraus und legen sie in Variablen ab, die zum erwarteten Inhalt passen, d.h. korrekt typisiert sind. Auf diese Weise wird das BLOB in kohärenter Weise gelesen.

Kommen wir nun zur ersten Frage, d.h. was ist der Zweck eines BLOB? Sie können es u.a.in folgenden Fällen verwenden:

  • Variablen, hierarchische Listen, Arrays speichern
  • Dokumenten zwischen Client und Server austauschen
  • Vertrauliche Daten in einem verschlüsselten BLOB schützen
  • Variablen mit Plug-Ins sichern
  • Bilder, Texte oder Dokumente an einen Web Browser senden
  • Mit einem Web Server kommunizieren

Der Befehl VARIABLE TO BLOB speichert die Daten in einem 4D internen Format. Deshalb ist der benötigte Speicherplatz etwas größer als die Datengröße selbst. Dieser Befehl hat den Vorteil, dass er "Byte Swapping" (die Position des höherwertigen Byte) beim Arbeiten in Crossplattform verwaltet.

Sie können beim Füllen eines BLOB statt der Variablen $PositionInBlob das Zeichen * verwenden. Damit weisen Sie 4D an, die Variable am Ende des BLOB zu speichern und seine Größe entsprechend zu erweitern.

Nehmen wir an, Sie haben eine Reihe Parameter in Ihrer Datenbank, die für jeden Benutzer zu berücksichtigen sind, nämlich auf jeder Station, wo Ihre Anwendung installiert ist:

  • Startbildschirm
  • Hintergrundfarbe
  • Schrift und Größe der Zeichen
  • u.s.w.
    Dies sind die Benutzereinstellungen.

Es gibt mehrere Möglichkeiten, sie zu bewahren (in einer Tabelle, als Textdatei, XML Datei, etc.).

In unserem Fall bewahren wir diese Einstellungen in einem BLOB, das in einer Datei auf Ihrer Festplatte gespeichert wird.

Die Befehle zum Lesen und Schreiben für BLOBs sind BLOB TO DOCUMENT und DOCUMENT TO BLOB.

Um Platz bzw. Übertragungszeit zu sparen, können Sie Ihre BLOBs auch komprimieren.

Beachten Sie, das 4D BLOBs nur komprimiert, wenn sie größer als 255 Bytes sind.

Beim Dekomprimieren von BLOBs müssen Sie prüfen, ob das BLOB derzeit komprimiert ist. Andernfalls wird beim Versuch, zu dekomprimieren ein Fehler generiert.

 
 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: BLOBs

 
ARTIKELVERWENDUNG

Self-Training ( 4D v13)
Self-Training ( 4D v14)