Offline-Programme mit ähnlicher Funktionalität wie das allegro-Utility SNIFFER. Der Schwerpunkt der Tests liegt aber in der Konsistenz der Datenbank, auf ungütige Kategorien bzw. falsche interne Reihenfolge wird überhaupt nicht getestet.
· Tblint · Aldint ·[Download] (ZIP-Format, 8.2kB)
Die Datenbank ist jeweils mit vollem Pfade und Namen (ohne Extension)
anzugeben:
c:\allegro\demo\cat
oder
c:/allegro/demo/cat
Konsistenztests ausgehend von der Satztabelle:
tblint.pl liest die Satztabelle (.TBL) der allegro-Datenbank ein und sucht jeden aufgeführten Satz auf, um dessen Anfang auf korrekte Rückreferenzierung zu testen.
Die Ausgabedatei tbl.err bleibt bestehen, sobald Fehler entdeckt wurden und enthält für jeden betroffenen Datensatz eine Zeile mit der Fehlermeldung.
Als Errorlevel wird eine Zahl zurueckgegeben, deren Bitmuster für jeden der folgenden Fehlerzustände eine 1 hat, sofern mindestens ein Satz betroffen war:
| Wert | Name | Erläuterung |
|---|---|---|
| 1 | SPERR | Satz gesperrt |
| 2 | NOACC | .cLD nicht vorhanden / zugreifbar |
| 4 | MULTIID | Mehrfacheintrag |
| 8 | WRONGNR | falsche Satznummer bei Vergleich |
| 16 | HIGHNR | Satznummer zu hoch |
| 32 | NOSTART | Satz korrupt (Kein Anfang) |
Anmerkung: MULTID und WRONGNR sind austauschbar: Zeigen zwei Einträge der Satztabelle auf denselben Datensatz, und werden sie gleichzeitig bei der Verarbeitung eingelesen (liegen also hinreichend nahe beieinander), so wird dies sofort bemerkt und mit MULTID quittiert. Anderenfalls kann dieser Datensatz aber nur auf eine Satznummer zurueckweisen, beim zwangsläufig erfolgenden Zweiten Test des Satzes gibt es dann einen Fehler WRONGNR.
^TopKonsistenztests ausgehend von den Datendateien:
aldint.pl liest die Satztabelle (.TBL) ein und sucht jeden aufgeführten Satz auf, um dessen Anfang auf korrekte Rückreferenzierung zu testen.
Die Ausgabedateien Datenbankname_nnn.err bleiben bestehen, sobald Fehler entdeckt wurden und enthalten für jeden betroffenen Datensatz eine Zeile mit der Fehlermeldung.
Als Errorlevel wird eine Zahl zurueckgegeben, deren Bitmuster für jeden der folgenden Fehlerzustände eine 1 hat, sofern mindestens ein Satz betroffen war:
| Wert | Name | Erläuterung |
|---|---|---|
| 1 | SPERR | Satz gesperrt |
| 2 | STRANGE | Komische Zeichen im Datensatz |
| 4 | NOID | keine Identnummer |
| 8 | WEIRDID | merkwürdige Identnummer |
| 16 | WRONGNR | falsche Satznummer bei Vergleich |
| 32 | HIGHNR | Satznummer zu hoch |
| 64 | CORRUPT | kein gültiges Satzanfangszeichen |
| 128 | NOEND | Letzte Kategorie des Satzes ohne Kategorieendezeichen |
| -1 | DESASTER | .TBL nicht lesbar |
Anmerkungen: HIGHNR und WRONGNR können nur vorkommen, wenn der Parameter -tbl angegeben wurde.
"Komische Zeichen" sind Zeichen aus einer festen Liste, die erfahrungsgemäß in "gesunden" Datensätzen nicht vorkommen sollten:
$wronglist = "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e
\x11\x12\x13\x16\x17\x18\x19\x1a\x1b\x1d\x1e\xff";
(Bei hierarchischen Sätzen kommen natürlich die Zeichen
\x02 und u.u. weitere durchaus vor)
Der Gegentest gegen die .TBL kann durchaus andere Fehler bringen als ein Test mit tblint: Durch eine Fehlindexierung oder vorige korrupte Sätze kann es in der .cLD Datensätze geben, die in der .TBL nicht verzeichnet sind!
^TopDie Identnummerntests von aldint sind vermutlich ziemlich sinnlos.
^Top