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:
| ||||||
|
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
|