' tb-screen: 80x25
' tb-tempdir
' ISAM (Spec isam-datenbank, Anforderung "Datenbank- und Tabellenbindung an
' eine Dateinummer"): Tabelle entsteht beim ersten Oeffnen, Layoutabgleich
' meldet 88, ungueltige Namen melden 81, CLOSE schreibt fest, DELETETABLE
' entfernt die Tabelle und meldet 82, wenn es sie nicht gibt.
' Laeuft in einem temporaeren Verzeichnis.
TYPE Kunde
    Nr AS LONG
    Name AS STRING * 8
END TYPE
TYPE Anders
    Nr AS INTEGER
END TYPE
DIM k AS Kunde, a AS Anders

ON ERROR GOTO Handler

' --- 4.1/4.2: Tabelle wird beim ersten Oeffnen angelegt ---
OPEN "kunden.isam" FOR ISAM Kunde "Kunden" AS #1
PRINT "angelegt, Saetze:"; LOF(1)
k.Nr = 1
k.Name = "Anton"
INSERT #1, k
k.Nr = 2
k.Name = "Berta"
INSERT #1, k
PRINT "nach INSERT:"; LOF(1)

' --- 4.5: CLOSE loest die Bindung und schreibt fest ---
CLOSE #1
OPEN "kunden.isam" FOR ISAM Kunde "Kunden" AS #1
PRINT "nach erneutem Oeffnen:"; LOF(1)
CLOSE #1

' --- 4.3: abweichendes Satzlayout meldet 88 ---
OPEN "kunden.isam" FOR ISAM Anders "Kunden" AS #2

' --- 4.4: ungueltiger Tabellenname meldet 81 ---
OPEN "kunden.isam" FOR ISAM Kunde "1Ungueltig" AS #3

' --- 4.4: ungueltiger Datenbankname meldet 81 ---
OPEN "" FOR ISAM Kunde "Kunden" AS #4

' --- 4.6: DELETETABLE fuer eine fehlende Tabelle meldet 82 ---
DELETETABLE "kunden.isam", "GibtsNicht"

' --- 4.6: DELETETABLE entfernt die Tabelle samt Index ---
OPEN "kunden.isam" FOR ISAM Kunde "Kunden" AS #1
CREATEINDEX #1, "NachName", 0, "Name"
CLOSE #1
DELETETABLE "kunden.isam", "Kunden"
PRINT "geloescht"
OPEN "kunden.isam" FOR ISAM Kunde "Kunden" AS #1
PRINT "neu angelegt, Saetze:"; LOF(1)
' Der Index ist mit der Tabelle verschwunden.
SETINDEX #1, "NachName"

Ende:
CLOSE
PRINT "fertig"
END

Handler:
PRINT "ERR="; ERR
RESUME NEXT
