VERIFY DATA FILE

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11.3 (Geändert)


VERIFY DATA FILE (; StrukturPfad; DatenPfad; Objekte; Optionen; Methode{; TabellenArray; FelderArray})

ParameterTypBeschreibung
StrukturPfadTextPfadname der zu prüfenden 4D Strukturdatei
DatenPfadTextPfadname der zu prüfenden Datendatei
ObjekteZahlZu prüfende Objekte
OptionenZahlZu prüfende Optionen
MethodeTextName der 4D Callback Methode
TabellenArrayArray ZahlNummern der zu prüfenden Tabellen
FelderArray2D Array ZahlNummern der zu prüfenden Indizes

Beschreibung

Der Befehl VERIFY DATA FILE prüft die Struktur der Objekte in der 4D Datendatei, definiert durch die Parameter StrukturPfad und Daten-Pfad.

Hinweis: Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.

StrukturPfad bestimmt die Strukturdatei (kompiliert oder nicht), die der zu prüfenden Datendatei zugeordnet ist. Das kann die offene Strukturdatei oder jede andere Strukturdatei sein. Sie müssen den vollständigen Pfadnamen in der Schreibweise des Betriebssystems angeben. Sie können auch einen leeren String übergeben. Dann erscheint der Standard Öffnen-Dialog, in dem der Benutzer die entsprechende Strukturdatei auswählen kann.

DatenPfad bestimmt die 4D Datendatei (.4DD). Sie muss zur Strukturdatei passen, die im Parameter Strukturdatei definiert wurde.

Achtung: Sie können die aktuelle Strukturdatei bestimmen, die Datendatei muss jedoch nicht die aktuelle (offene) Datei sein. Mit dem Befehl VERIFY CURRENT DATA FILE können Sie prüfen, ob die Datendatei offen ist.

Versuchen Sie, die aktuelle Datendatei mit VERIFY DATA FILE zu prüfen, wird ein Fehler erzeugt.

Die festgelegte Datendatei wird im Nur-Lesen Modus geöffnet. Stellen Sie sicher, dass keine Anwendung im Schreibmodus auf diese Datei zugreift, denn das kann die Ergebnisse der Prüfung beeinträchtigen.

Im Parameter DatenPfad können Sie einen leeren String, einen Dateinamen oder einen kompletten Pfadnamen in der Schreibweise des Betriebssystems übergeben. Bei einem leeren String erscheint der Standard Öffnen-Dialog, so dass der Benutzer die entsprechende Datei auswählen kann. Beachten Sie, dass Sie dann nicht die aktuelle Datendatei auswählen können. Übergeben Sie nur den Namen einer Datendatei, sucht 4D danach auf derselben Ebene wie die festgelegte Strukturdatei.

Im Parameter Objekte definieren Sie, welche Objekttypen geprüft werden sollen. Es gibt zwei Typen: Datensätze und Indizes. Sie können folgende Konstanten unter dem Thema "Datendatei Wartung" verwenden:

- Verify Records (4)

- Verify Indexes (8)

- Verify All (16)

Um Datensätze und Indizes zu prüfen, übergeben Sie die Summe aus Verify Records+Verify Indexes. Mit dem Wert 0 (Null) erhalten Sie das gleiche Ergebnis. Die Option Verify All führt eine vollständige interne Überprüfung aus (Datensätze + Indizes). Diese Überprüfung ist kompatibel mit dem Erstellen eines Prüfberichts.

Im Parameter Optionen setzen Sie Optionen zum Überprüfen. Unter dem Thema "Datendatei Wartung" gibt es die Option Do not create log file (16384).

Der Befehl VERIFY DATA FILE legt generell einen Prüfbericht im XML-Format an. Übergeben Sie diese Option, wird kein Prüfbericht ange-legt. Um den Prüfbericht anzulegen, übergeben Sie 0 (Null) in Optionen.

Mit dem Parameter Methode setzen Sie eine Callback Methode, die während der Überprüfung regelmäßig aufgerufen wird. Existiert die übergebene Methode nicht, wird die Überprüfung nicht ausgeführt. Es wird ein Fehler erzeugt und die Variable OK wird auf 0 (Null) gesetzt.

Wird die Methode aufgerufen, kann sie je nach auslösendem Ereignis bis zu 5 Parameter empfangen (siehe Tabelle Aufrufe). Sie müssen diese Parameter in der Methode deklarieren:

- $1Lange GanzzahlMeldungstyp (siehe Tabelle)
- $2Lange GanzzahlObjekttyp
- $3TextMeldung
- $4Lange GanzzahlTabellennummer
- $5Lange GanzzahlSonderfall

Nachfolgende Tabelle beschreibt den Inhalt der Parameter je nach Ereignistyp:

Ereignis$<1 (<Lange$<2 (<Lange $<3 (<Text)$<4 (<Lange $<5 (<Lange
Ganzzahl)Ganzzahl)Ganzzahl)Ganzzahl)
Meldung10Meldung über Erledigter Pro-Verbleibende Zeit
Verlaufzentsatz (0-100)in Sekunden
Überprüfung2Objekttyp MeldungstextTabellen- oderNicht verwendet
beendetOKIndexnummer
Fehler3Objekttyp Text of error-Tabellen- oderNicht verwendet
messageIndexnummer

Ende der

Ausführung40DONE00
Warnung5ObjekttypText derTabellen- oderNicht verwendet
FehlermeldungIndexnummer

Objekttyp: Wurde ein Objekt überprüft, kann eine Meldung "Beendet" ($1=2), Fehler ($1=3) oder eine Warnung ($1=5) gesendet werden. Für $2 sind folgende Objekttypen möglich:

0 = unbestimmt

4 = Datensatz

8 = Index

16 = Strukturobjekt (Vorabprüfung der Datendatei).

Sonderfall: Ist $4 = 0 für $1=2, 3 oder 5 betrifft die Meldung keine Tabelle oder Index, sondern die gesamte Datendatei.

Die Callback Methode muss auch einen Wert in $0 zurückgeben (Lange Ganzzahl), der die Ausführung der Operation prüft:

- Ist $0 = 0, läuft die Operation normal weiter

- Ist $0 = -128, stoppt die Operation ohne Erzeugen eines Fehlers

- Ist $0 = ein anderer Wert, stoppt die Operation und der in $0 übergebene Wert wird als Fehlernummer zurückgegeben. Dieser Fehler lässt sich über eine Fehlerverwaltungsmethode abfangen.

Dieser Befehl kann auch 2 optionale Arrays verwenden:

Das Array TabellenArr enthält die Nummern der Tabellen, deren Datensätze geprüft werden sollen. Damit können Sie die Überprüfung auf bestimmte Tabellen begrenzen. Ist dieser Parameter nicht übergeben, oder das Array leer und der Parameter Objekte enthält die Konstante Verify Records, werden alle Tabellen geprüft.

Das Array FelderArray enthält die Nummern der indizierten Felder, deren Indizes überprüft werden sollen.

Ist dieser Parameter nicht übergeben, oder das Array leer und der Parameter Objekte enthält die Konstante Verify Indexes, werden alle Indizes geprüft.

Der Befehl ignoriert nicht-indizierte Datenfelder.

Enthält ein Datenfeld mehrere Indizes, werden alle geprüft. Ist das Datenfeld Teil eines zusammengesetzen Index, wird der gesamte Index geprüft.

Sie müssen in FelderArray ein 2D Array übergeben. Für jede Zeile des Array gilt:

- Das Element {0} enthält die Tabellennummer

- Die anderen Elemente {1...x} enthalten die Nummern der Datenfelder.

Der Befehl VERIFY DATA FILE erstellt einen Prüfbericht im XML-Format (wenn Sie nicht die Option Do not create log file übergeben haben, siehe Parameter Optionen). Es hat den Namen der Datendatei und liegt im Ordner Logs der Datenbank. Beispiel: Bei einer Datendatei mit Namen "data.4dd" lautet der Prüfbericht "data_verify_log.xml."

Beispiele

1. Einfache Überprüfung von Daten und Indizes:

   VERIFY DATA FILE($StructName;$DataName;Verify Indexes+Verify Records;Do not create log file;"")

2. Vollständige Überprüfung mit Prüfbericht

   VERIFY DATA FILE($StructName;$DataName;Verify All;0;"")

3. Nur Datensätze überprüfen

   VERIFY DATA FILE($StructName;$DataName;Verify Records;0;"")

4. Nur Datensätze der Tabellen 3 und 7 überprüfen:

   ARRAY LONGINT($arrTableNums;2)
   ARRAY LONGINT($arrIndex;0) `not used but mandatory
   $arrTableNums{1}:=3
   $arrTableNums{2}:=7
   VERIFY DATA FILE($StructName;$DataName;Verify Records;0;"FollowScan";$arrTableNums;$arrIndex)

5. Bestimmte Indizes überprüfen (Index von Feld 1 der Tabelle 4 und Index der Felder 2 und 3 der Tabelle 5)

   ARRAY LONGINT($arrTableNums;0)   `wird nicht verwendet, ist aber zwingend
   ARRAY LONGINT($arrIndex;2;0)   `2 Zeilen (Spalten werden später hinzugefügt)
   $arrIndex{1}{0}:=4    `Tabellennummer in Element 0
   APPEND TO ARRAY($arrIndex{1};1)   `Nummer des 1. zu prüfenden Feldes
   $arrIndex{2}{0}:=5   `Tabellennummer in Element 0
   APPEND TO ARRAY($arrIndex{2};2)   `Nummer des 1. zu prüfenden Feldes
   APPEND TO ARRAY($arrIndex{2};3)   `Nummer des 2. zu prüfenden Feldes
   VERIFY DATA FILE($StructName;$DataName;Verify Indexes;0;"FollowScan";$arrTableNums;$arrIndex)

Referenz

VERIFY CURRENT DATA FILE.

Systemvariablen oder Mengen

Existiert die Callback Methode nicht in der Datenbank, wird ein Fehler erzeugt und die Systemvariable OK wird auf 0 (Null) gesetzt.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next