infra:NET User
 
×
1.3.8 StpDBreclength – Länge der Sätze einer Datenbankdatei verändern
StpDBreclength( BufName, nWhat );
Argumente
strBufName
Datenbankdatei, dessen Satzlänge verändert werden soll
 
nWhat:
Sätze verkleinern                     
0
nein
1
ja
(10: Durchführung, auch wenn Satzlänge im DD und in der InfreDBDatei identisch, dann kein Fehler 4121)
Rückgabewert:
StpRc:
0
Sätze erfolgreich verändert
<>0
Fehler beim verändern der Sätze
Fehlerarten:
Warnung:
Fehlgeschlagene Lockversuche der Datenbankdatei.
4121
 Aktion nicht durchgeführt.
Die Satzlänge im DD und in der InfreDBDatei ist identisch.
nWhat ist auf 0 gesetzt, und es wird versucht die Satzlänge zu verkleinern.
Fehler
Rest
Beschreibung
Die Daten für das Ändern der Datenbankdatei wird aus dem (binären) Datadictonary gelesen, d.h. zuerst müssen die Anpassungen im DataDictionary vorgenommen werden. Vorgehen für eine Satzlängenveränderung:
  •  
Mit Hilfe der Funktion StpDDFfile den Dateieintrag im DDFDF.DAT anpassen.
2.
Aufruf von sibddgen.exe, damit DDFDF.DAT compiliert, bzw. das binäry DataDictionare sibdd.bin, mit den neuen Daten aus DDFDF.DAT angepasst  wird.
3.
Das neu generierte Data-Dictionary SINDD.BIN muss neu geladen werden mit StpDDreload (meldet sich an der Datenbank ab, dann mit den selben Werten wieder an).
4.
Aufruf von StpDBreclength, um die Satzlängen der Datei zu erweitern.
Hat der Datensatze die selbe Länge in der Datenbankdatei wie im Datadicionary, so gilt dies für  StpDBreclength als erfolgreich ausgeführt, d.h. es werden keine Erfolglogs geführt.
Mit nWhat == 1 wird die Satzlänge verkürzt und ist analog dem Vorgehen Satzlängenveränderung.  Auch hier werden keine Erfolglogs geschrieben.
Vor dem Verändern der Datensatzlänge wird ein Lock auf die Datenbankdatei gesetzt. Bei erfolglosem Sperren der Datenbankdatei kann eine Warnung gelogt werden, falls die Protokollierung für Warnungen aktiv ist.
Schlägt StpDBreclength fehl, werden alle temporären Dateien gelöscht. Bei erfolgreichem Verändern der Satzlänge wird
1.
Kopie der Originaldatei mit Extention „.bck“ umbenannt.
2.
Die neue Datei nach Originaldatei kopiert
Neue Datei und Backup der Originaldatei gelöscht.
Bemerkung:
Der Fehler 62 bedeutet, dass die Satzlänge in der Datenbankdatei und im DataDictionary unterschiedlich ist. Dieser Fehler kann bei allen Stp-Befehlen auftreten.
Grund:
  • Setup wurde nach den Ändern des Data-Dictionary nicht neu aufgerufen.
  • Im Data-Dictionary wurde zwar eine kürzere Satzlänge eingetragen, aber StpDBreclength wurde mit nWhat = 0 (verkürzen nicht erlaubt) aufgerufen.
Funktionsart
STPFunktion