Der Befehl SET EXTERNAL DATA PATH setzt oder ändert den externen Speicherort für das im Parameter Feld übergebene Feld für den aktuellen Datensatz.
Ab 4D v13 lassen sich Datenfelder vom Typ Text, BLOB und Bild außerhalb der Datendatei speichern. Weitere Informationen dazu finden Sie im Abschnitt Daten extern speichern des Handbuchs 4D Designmodus.
Die über diesen Befehl definierten Einstellungen gelten nur, wenn der aktuelle Datensatz auf der Festplatte gespeichert wird. Speicherparameter, die in der Struktur der Anwendung gesetzt wurden, werden nicht verändert. Wird der aktuelle Datensatz abgebrochen, führt der Befehl nichts aus. Wurde dieser Befehl einmal ausgeführt, behält 4D den Link zwischen dem Datenfeld des Datensatzes und der Datei auf der Festplatte automatisch bei. Sie müssen den Befehl nicht erneut ausführen - außer, der Pfad ändert sich.
In Pfad können Sie entweder einen eigenen Pfadnamen übergeben, oder eine Konstante, die einen automatischen Speicherort angibt:
- Eigener Pfadname zur Datei
In diesem Fall nutzen Sie das externe Speichern im "eigenen Modus." Hier sind einige 4D Datenbankfunktionen nicht automatisch verfügbar (siehe Handbuch 4D Designmodus).
Sie können entweder einen Pfad in Bezug auf die Datendatei oder einen absoluten Pfad übergeben, mit Name und Endung der Speicherdatei (übergeben Sie "../" am Textanfang für einen relativen Pfad). Die Endung muss zum tatsächlichen Datentyp passen, denn es gibt keine Konvertierung beim Sichern. Sie müssen die Syntax des Systems verwenden. Sie können einen beliebigen Ordner festlegen, das kann auch der Standardordner für externe Dateien der Datenbank sein (DatenbankName.ExternalData) - In diesem Fall sind die Dateien beim Backup der Datenbank enthalten. Ist ein Ordner nicht vorhanden, erstellt 4D ihn automatisch. Ein Fehler wird generiert, wenn die Erstellung fehlschlägt, z.B. wenn es keine entsprechenden Zugriffsrechte gibt.
Sichern Sie die externe Datei im gleichen Ordner wie die Datendatei oder einen ihrer Unterordner, bewertet 4D den angegebenen Pfad als relativ zur Datendatei und behält den Link bei, selbst wenn der Datendateiordner bewegt oder umbenannt wird.
Folglich ist es möglich, dass mehrere Datensätze die gleiche externe Datei gemeinsam nutzen können. Alle Änderungen in dieser Datei sind dann in allen Datensätzen verfügbar. Wenn in solchen Fällen mehrere Prozesse dieselben Felder gleichzeitig im Schreibmodus verwenden können, müssen Sie konkurrierende Zugriffe über Semaphoren steuern, um die evtl. Beeinträchtigung externer Dateien zu vermeiden. - Automatischer Speicherort
Sie können zwei automatische Speicherorte über folgende Konstanten unter dem Thema Datendatei Wartung angeben:
Konstante |
Typ |
Wert |
Meldung |
Use default folder |
Lange Ganzzahl |
1 |
Die Daten des Feldes, das als Parameter übergeben wird, werden im Standardordner mit Namen DatenbankName.ExternalData gesichert und neben die Datendatei gelegt. In diesem Modus verwaltet 4D externe Daten wie Daten innerhalb der Datendatei. |
Use structure definition |
Lange Ganzzahl |
0 |
4D verwendet die Parameter, die in der Struktur zum Speichern des Felds angegeben sind (siehe Handbuch 4D Designmodus). Wechseln Sie vom externen Speichern zum internen Speichern, wird die externe Datei nicht gelöscht. |
Hinweis: SET EXTERNAL DATA PATH lässt sich nur auf einem lokalen 4D oder 4D Server ausführen. Bei Ausführung auf einem remote 4D wird der Befehl ignoriert.
Sie wollen den Inhalt einer Bilddatei ab einer bestimmten Größe außerhalb der Daten speichern. Dafür schreiben Sie in der Schaltfläche zum Bestätigen des Formulars folgenden Code:
If(Picture size([Photos]InputField)>1300000)
SET EXTERNAL DATA PATH([Photos]InputField;
"C:\\Storage\\LargePicts\\" + String(Record number)+ ".jpg")
Else
SET EXTERNAL DATA PATH([Photos]InputField;Use structure definition)
End if
Um den Inhalt eines Bildfeldes außerhalb der Datendatei, relativ zur Datendatei zu speichern: