infra:NET User
 
×
1.3.11 StpDDFfile – Dateidefinitionen in DDFDF.DAT
StpDDFFile( strBufName, nlDateiindex, strVersion, strMask, strValue );
Argumente
strBufName
Buffer der Datei DDFDF.DAT (standard: strDDF)
 
nlDateiindex:
Aus diesem Parameter werden die Datensatznummer (DDFDF) und die Position im Datensatz (DDFDF) errechnet:
 
strVersion
nVersion ist ein 6 Byte langer alfanumerischer String, der aus Ziffern und ggf. Leerzeichen besteht.
Byte 1-3: Update bzw. Servicepack, mit dem dieser Eintrag gemacht wird: z.B. „551“ oder „562“.
Byte 4-6: laufende Nummer, wenn mehr als eine Änderung für diese Datei gemacht wird.
nVersion steht im DDFDF-Satz als jeweils Byte 95-100 der 100 Byte langen Information je Datei, also für die Dateien 1-10, 11-20, 21-30 usw. an Pos. 104, 204, 304.. usw. in der Länge 6 Byte.
Bei der Generierung des Laufzeit-DataDictionarys (sibdd.bin) wird die aktuelle Version aller Tabellen aus dem DDFDF in das sibdd.bin geschrieben. Damit ist nachverfolgbar, mit welchem DDFDF-Versionsstand zur Laufzeit gearbeitet wird. Diese Version wird in infraDBManager hinter dem Dateinamen angezeigt.
Ist die im Laufzeit-DataDictionary (sibdd.bin) verwendete Version (also die der letzten erfolgreichen DD-Generierung) größer als die bei StpDDFfile angegebene Version, wird das Update nicht gemacht und als Returncode wird „80“ zurückgegeben. Dieser Returncode wird vom Scripter ausgewertet, und über alle weiteren Aktionen (Pfad- und Feldbeschreibungsänderungen, die zu diesem Änderungspaket gehören, gesprungen.
Ist die Laufzeit-Version kleiner oder gleich nVersion, wird das Update durchgeführt, nVersion wird im DDFDF eingetragen und bei der nächsten DD-Generierung ins sibdd.bin übertragen.
Ist im aktuellen Laufzeit-DataDictionary (sibdd.bin) noch keine Dateiversion eingetragen, wird mit den o.g. 6 Byte im DDFDF verglichen.
strVersion wird mit Hilfe von Stringbefehlen verglichen. Z.B. gilt beim Stringvergleich 1 < 10 < 2 < 20.
Ist strVersion == „“, wird die Versionsprüfung nicht vorgenommen.
 
strMask
Maskierungszeichen. Wird das Zeichen in strValue eingesetzt, wird an dieser Stelle der Wert nicht überschrieben.
 
StrValue
Definition der Datei, die neu eingetragen oder geändert wird.
Rückgabewert:
StpRc:
0
Dateidefinition geändert bzw. neu geschrieben.
143
Definition nicht geändert, weil bereits ein neuerer Stand vorhanden ist.
Rest
Fehler
Fehlerarten:
Analog StpUpp
Beschreibung
Diese Funktion ändert oder fügt eine Dateidefinition ein.
Zuerst muss der DDFDF-Satz lt. nlDateiindex gelesen werden, also der Satz mit dem Key „D“ + Datensatznummer (4 Byte rechtsbündig mit führenden Leerzeichen) + „   0“
Wenn es diesen Satz nicht gibt, muss er neu (mit StpUpd) geschrieben werden: Key + Rest Leerzeichen, nVersion ist dann natürlich leer ( 6 Blanks).
Dann wird nVersion geprüft und der Eintrag für die Datei mit dem Index „nlDateiindex“ wird neu geschrieben oder geändert, oder die Änderung gilt als bereits durchgeführt (nVersion < als vorhandener Eintragund werden übersprungen.
Siehe auch Kapitel „Satzaufbau der DDFDF.DAT für die StpDDF-Befehle“.
Funktionsart
STPFunktion