Tom hat geschrieben:Ich finde die Quellcodes für CL-DBU nicht, aber es mag möglich sein, dass es eine implizite Fehlerbehandlung gibt.
den Quellcode habe ich zwar, aber der ist sehr mühsam zu lesen
Ich habe folgendes gemacht:
1. TEST1.DBF mit DBT erzeugt (Feld 1 Text, Feld 2 Memo)
2. 4 Datensätze erzeugt, dbu zeigt Text normal an und "MEMO" im Memofeld.
3. DBU kopiert nach TEST2.DBx und ich lösche Satz 2 und Satz 4.
4. DBU kopiert mit ! deleted() nach TEST3.DBx
5. DOS copy TEST3.DBT nach TEST2.DBT
6. Xbase++ und Clipper 5.2e DBU öffnen die TEST1.DBF mit falscher DBT ohne Fehler.
7. Beide können auf Satz 1 und Satz 2 zugreifen (DBT Inhalt von aktuellem Satz 2 entspricht der Eingabe von Satz 3 !)
8. Xbase++ DBU zeigt leere MemoEdit Fenster bei Satz 3 und 4 (die ja noch Offsetverweise haben müssten ...)
9. Clipper 5.2e DBU hängt sobald man eines der Memofelder von Satz 3 oder 4 öffnen will.
Tom hat geschrieben:obwohl gerade hier die Memofelder ja angefasst werden müssen. Aber es mag auch sein, dass "DbExport" (die Funktion, auf die COPY TO letztlich verweist) auch mit einem rudimentären Errorhandling oder etwas Ähnlichem ausgestattet ist.
Ich hatte sowas auch nur unter Clipper (Fehler beim Restore, nur DBF zurückgeschrieben), möglich dass die eine Sicherung eingebaut haben (wenn der Offset fehlt gib "" zurück ...).