4D v14.3

SET EXTERNAL DATA PATH

Home

 
4D v14.3
SET EXTERNAL DATA PATH

SET EXTERNAL DATA PATH 


 

SET EXTERNAL DATA PATH ( Feld ; Pfad ) 
Parameter Typ   Beschreibung
Feld  Text, BLOB, Bild in Feld, dessen Speicherort gesetzt werden soll
Pfad  Text, Lange Ganzzahl in Pfadname und Dateiname zum externen Speichern oder
0 = Verwende Strukturdefinition
1 = Verwende Standardordner

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)
  // Große Dateien außerhalb der Daten speichern
    SET EXTERNAL DATA PATH([Photos]InputField;
    "C:\\Storage\\LargePicts\\" + String(Record number)+ ".jpg")
 Else
  // Kleinere Dateien speichern, wie in der Struktur definiert
    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:

 CREATE RECORD([Photos])
 [Photos]Thumbnail:=$small_pict
 SET EXTERNAL DATA PATH([Photos]Thumbnail;"../custom"+Folder separator+$pictname)
  //speichert in Ordner "/custom/" neben der Datendatei
 SAVE RECORD([Photos])

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Strukturzugriff
Nummer: 1134

Im remote Modus anderes Verhalten

 
GESCHICHTE 

Erstellt: 4D v13

 
SIEHE AUCH 

Get external data path
RELOAD EXTERNAL DATA

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)