4D v16.3

Daten extern speichern

Home

 
4D v16.3
Daten extern speichern

Daten extern speichern  


 

 

Sie können wählen, wo Sie Daten aus einem Datenfeld vom Typ BLOB, Bild,Text bzw. Objekt speichern wollen. Sie können den Inhalt dieser Felder, zusätzlich zu den internen Speicheroptionen (im Datensatz oder in der Datendatei), auch außerhalb der Datendatei abspeichern. In diesem Fall werden Ihre Daten als externe Dateien gespeichert, die 4D verwaltet und auch über Programme von Drittherstellern steuerbar sind - vorausgesetzt, Sie sorgen für den Erhalt der Datenintegrität.

Dies läuft für den Benutzer unsichtbar ab: Der Zugriff auf die Daten bleibt gleich, egal wo sie gespeichert sind.

Durch externes Speichern der Daten können Sie die Funktionsweise der Anwendung optimieren. So können Sie beispielsweise umfangreiche Daten transportieren oder über das Betriebssystem auf Text bzw. Bilder innerhalb der Datenbank zugreifen, selbst wenn sie nicht geöffnet ist.

Es gibt zwei Möglichkeiten, um Daten extern zu speichern:

  • Automatischer Modus: In diesem Modus erstellt und verwaltet 4D einen Standardordner, der in einer bestimmten Art strukturiert ist und alle extern gespeicherten Daten enthält. Diese Daten werden im Hintergrund gesteuert und haben die gleiche Funktionsweise und automatischen Aktionen wie intern gespeicherte Daten.
    Sie können den automatischen Modus folgendermaßen steuern:
    • Externes Speichern im Struktureditor konfigurieren (Die Einstellungen werden mit der Struktur der Datenbank gesichert). Weitere Informationen dazu finden Sie im Abschnitt .
    • Über den Befehl SET EXTERNAL DATA PATH mit einer Konstante im Parameter Pfad (die Einstellung gilt für die Arbeitssitzung).
  • Eigener Modus: In diesem Modus wählen Sie selbst, wo die externen Dateien zu Datenfeldern bzw. Datensätzen gespeichert werden. 4D behält dann nur den Link zwischen dem Feld und seinen Daten und greift im Nur-Lesen Modus darauf zu, einige Mechanismen der Datenbank sind nicht länger verfügbar.
    Sie aktivieren den eigenen Modus über den Befehl SET EXTERNAL DATA PATH und geben im Parameter Pfad einen anderen Ordner als den Standardordner an.

Nachfolgende Tabelle zeigt die Funktionsweise und automatischen Aktionen im automatischen und im eigenen Modus:

Automatischer ModusEigener Modus
Ordner zum Speichern einrichtenName und Speicherort werden von 4D gesetzt; nur ein Standardordner für die gesamte DatenbankName und Speicherort frei wählbar; kann für jedes Feld anders sein
Externe Dateien erstellen, laden und sichernAutomatischAutomatisch
Externe Datei löschen, wenn der Datensatz gelöscht wirdJaNein
Externe Datei löschen, wenn dem Feld Nullwert zugewiesen wirdJaNein
Automatische Integration beim Sichern der DatenbankJaJa (externer Pfad)
Automatische Unterstützung, wenn das Logbuch integriert wirdJaJa (externer Pfad)
Unterstützung von Standardindizes (Textfelder)NeinNein
Unterstützung von Volltext-Indizes (Text- und Bildfelder)JaNein
Unterstützung von TransaktionenJaNein

Außerhalb der Datendatei gespeicherte Daten werden nach folgenden Kriterien organisiert:

  • Die Daten werden für jeden Datensatz in einer externen Datei mit Namen xxx.txt (Textfeld), xxx.blob (Blob- oder Objektfeld) oder xxx.jpg/xxx.tiff... (Bildfeld) gespeichert, wobei xxx ein einmaliger Identifier (UUID) ist, den 4D verwaltet. 
  • Im automatischen Modus werden alle externen Daten in einen Ordner mit Namen <DatabaseName>.ExternalData gelegt und <DatabaseName> wird durch den Namen der Strukturdatei der Anwendung ersetzt. Dieser Ordner wird neben die Datendatei (.4DD Datei) der Anwendung gelegt.
    Innerhalb dieses Ordners erstellt 4D pro Tabelle mit externen Daten einen Ordner mit Namen Tabelle+Tabellennummer, dann pro externes Datenfeld einen Unterordner mit Namen Feld+Feldnummer. Die ersten 100 Einträge des Feldes werden auf der obersten Ebene dieses Ordners gespeichert, die darauffolgenden in Unterordnern, beginnend mit Nr. 2. Jeder Unterordner kann bis zu 100 Elemente enthalten.
    Wird z.B. der Inhalt von Feld Nr. 5 von Tabelle Nr.3 in der Anwendung "Accounting" außerhalb der Datei gespeichert, erstellt 4D hierfür folgende Baumstruktur:
    Accounting.4DD
    [Accounting.ExternalData]
        Table3
            Field 5
                Data_1B7F3A 56F6544B45951EFA60426D5ABC.txt
                Data_1B7F3A 56F6544B45951EFA60426D5CCC.txt
                ...
                2
                    Data_2ADBFBA478AAE4409DA9C2D13C90A53B.txt
                    Data_32F8A30B87EE7E4BBC802468D553DC43.txt
                    ...
  • Im eigenen Modus bestimmen Sie Name und Speicherort des Ordners selbst und lassen sich für den extern gespeicherten Inhalt jedes Datenfeldes über den Befehl SET EXTERNAL DATA PATH separat angeben. Diese Einstellung wird nicht in der Struktur der Anwendung gespeichert.

Im automatischen Modus werden Daten von Datenfeldern in einer externen Datei gespeichert, wenn der Datensatz auf die Festplatte gesichert wird - falls erforderlich nach Bestätigen der Transaktion:

  • Existiert die externe Datei nicht, wird sie im automatischen Modus angelegt, im eigenen Modus wird ein Fehler zurückgegeben
  • Existiert bereits eine externe Datei, ersetzt 4D sie durch eine neue
    Um die bisherige Datei beizubehalten, können Sie entweder einen anderen Pfad angeben (über den Befehl SET EXTERNAL DATA PATH) oder über den Befehl RELOAD EXTERNAL DATA den Inhalt des Feldes aus seiner externen Datei in den Speicher laden, bevor er erneut auf der Festplatte gesichert wird. Diese Option ist hilfreich, wenn die Datei nach dem Laden des Datensatzes von einer anderen Anwendung geändert wurde.

Im eigenen Modus (Pfad definiert durch den Befehl SET EXTERNAL DATA PATH) speichert 4D nur den Pfadnamen der Datei, wenn der Datensatz auf der Festplatte gesichert wurde. Der Entwickler muss die Datei selbst verwalten (Erstellen und Ändern). 

Der Speicherplatz für die Daten ist in jeder Anwendung ein lokaler Parameter. Er kann beim Synchronisieren oder Replizieren der Daten (siehe Replication via SQL in der lokalen und in der remote Anwendung unterschiedlich sein. In diesem Fall passt das Speichern zum Parameter der jeweiligen Anwendung; Synchronisieren oder Replizieren ändert diese Parameter nicht.

Beispiel: Ein Datenfeld vom Typ Bild wird in der remote Anwendung außerhalb der Datendatei gespeichert; dasselbe Datenfeld wird in der lokalen Anwendung innerhalb der Datendatei gespeichert. Beim Replizieren werden alle Daten, die diesem Datenfeld in der lokalen Anwendung hinzugefügt wurden, in der remote Anwendung weiterhin außerhalb der Datendatei gespeichert.

Extern gespeicherte Dateien lassen sich auch von anderen Programmen als 4D im Lese-/Schreibmodus öffnen (Betriebssysteme, Text- oder Grafikeditoren, usw.). Das sollte jedoch mit Bedacht geschehen, da es u.U. die Funktionsweise der Anwendung beeinträchtigen kann:

  • Wird eine extern gespeicherte Datei durch das Betriebssystem oder ein third-party Programm gelöscht, umbenannt oder verschoben, wertet 4D das dazugehörige Feld als Wert Null. Im automatischen Modus wird die Datei erneut angelegt (sofern sie nicht Null ist), wenn der Datensatz gesichert wird.
    Im eigenen Modus wird bei Ausführen des Befehls SET EXTERNAL DATA PATH ein Fehler generiert.
  • Verwenden Sie Indizes und werden die gespeicherten Dateien über ein third-party Programm geändert, ohne die dazugehörigen Datensätze erneut zu speichern, werden die Indizes nicht aktualisiert.

Hinweis: Externe Textdateien werden in UTF-8 ohne BOM-Format gesichert. Werden sie über ein third-party Programm geöffnet und dann mit einem BOM gesichert, kann 4D sie weiterhin öffnen, sie werden dann jedoch wieder ohne BOM gesichert.

Beachten Sie, dass Laden eines Datensatzes im Nur-Lesen Modus nicht die externen Dateien für die Datenfelder dieses Datensatzes sperrt. Die Dateien sind über 4D oder ein anderes Programm weiterhin änderbar, selbst wenn 4D ihren Inhalt in den Speicher lädt.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankstruktur erstellen

 
GESCHICHTE 

Erstellt: 4D v13

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v16)
4D Designmodus ( 4D v16.1)
4D Designmodus ( 4D v16.3)