4D v16BLOBs |
||
|
4D v16
BLOBs
BLOBs
Diese Sequenz zeigt, wie Sie BLOBs programmieren und die Interaktion mit Variablen. In BLOBs können Sie alle Arten von Informationen speichern und wiederfinden. Nehmen wir das Beispiel Variablen speichern.
C_LONGINT($Input_Integer;$Output_Integer) Die Operationen sind:
Die Variable PositionInBlob arbeitet als Eingabe- und Ausgabevariable, d.h.:
Wir führen die Methode aus und gehen in den Schrittmodus. Hier sehen wir, wie die Methode das BLOB füllt und die Variablen wiederherstellt. An dieser Stelle:
Um Daten aus dem BLOB zu entnehmen:
Dieses einfache Beispiel veranschaulicht Eingabe und Entfernen von Daten in einem BLOB. Wir können Ergebnisse aus Statistik-Arrays in einem BLOB speichern, um sie später wieder zu verwenden:
Um den Inhalt der Arrays später wiederzufinden, schreiben wir folgenden Code:
C_BLOB($blob) Beim Ausführen mit dem Debugger:
Um den BLOB Inhalt später wieder zu finden:
Sie sollten zusätzlich folgendes beachten: Zu Beginn stellen wir uns immer dieselben Fragen:
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. 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.
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:
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 entkomprimieren ein Fehler generiert.
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
Self-Training ( 4D v16) |