|
|
#1 |
|
Entwickler
|
Diskette einlegen und <do:F10> drücken. 0:29999
Hallo Sommerloch :-)
Sicherlich hatten schon einige von euch den Fehler: Code:
Diskette einlegen und <do:F10> drücken. 0:29999 |
|
|
|
|
|
#2 |
|
Entwickler
|
Da die Indexreparatur nicht funktioniert habe ich mir vorerst mit einem simplen Programm geholfen. Datenbank mit einigen wenigen Datensätzen abgefragt und neue Datenbank angelegt. Datensätze in der neuen Datenbank gelöscht - damit habe ich eine soweit saubere samt aller Indexfelder.
Code:
local preview daten=from fa_daten
use daten
local preview ziel=from fa_copy
use ziel
local int total=count(daten)
put at 1,1 "Gesamt Datensätze : "&string(total)
while recno(daten)>0
put at 1,2 "Bearbeite Datensatz : "&string(recno(daten))
record ziel = daten
insert ziel
find daten next
end while
use daten end
use ziel end |
|
|
|
|
|
#3 |
|
Entwickler
|
Leider war das wieder nur ein Versuch - nichtmal 100.000 hat er geschafft. Nächste Fehlermeldung:
Code:
-Zeile 1 : BU29707 Ende des Speichers. Code:
BU29706 Diskettenfehler (I/O-Fehler) |
|
|
|
|
|
#4 |
|
Entwickler
|
So - auch 30.000 ist zuviel - ab 100.000 macht er dauernd mucken. Ich habs jetzt auf unglaubliche 5 !!! reduziert.....*grml*
Code:
local bool ok=true
local view daten=from kaputt
use daten
while ok
local view ziel=from neu
use ziel
local int bpoint=5
local int start=count(ziel)
bpoint=bpoint+start
find daten start
local int total=count(daten)
put at 1,1, do clear screen
put at 1,5 "Gesamt Datensätze : "&string(total)
while recno(daten)>0
put at 1,7 "Bearbeite Datensatz : "&string(recno(daten))
if recno(daten)>start
record ziel = daten
insert ziel
else
put at 1,9 "Skipping Datensatz : "&string(recno(daten))&" nächster Break bei "&string(bpoint)
end if
find daten next
if recno(daten) = bpoint
put at 1,9 "Break bei Datensatz : "&string(recno(daten))
break
end if
end while
end while
use daten end
use ziel end |
|
|
|
|
|
#5 |
|
Registrierter Benutzer
|
Hallo zusammen,
an die Fehlermeldungen kann ich mich erinnern. Aber ich konnte auch nie so recht ergründen, was die Ursache ist. Allerdings war OA ja ganz früher mal ein von Diskette ausführbares Programm. Da musste man zwischendurch mal die Datendiskette rausnehmen und die Programmdiskette reinschieben. Dann wurde Programmteile nachgeladen .. usw. Denkbar, das da noch 'Restanten' vorhanden sind. Wirklich voll ist da ja wohl nichts. Ein Rezept für die Fehlerbehebung hatte ich dafür nie. Probieren, Versuchen, Beten ... irgendwann ging es dann. Schöne Grüße Heinz |
|
|
|
|
|
#6 |
|
Entwickler
|
Über mein Script ging auch die "Reparatur" des Index aber dennoch habe ich Ludwig gebeten ein Tool dafür zu schreiben da die Performance ab 100.000 Daten unter jeder Kritik ist. Diese Datenbank hat MEMO Felder und ich vermute auch deshalb ist der Index nicht zu reparieren da wahrscheinlich irgendwo fehlerhafte Memopages sind (zumindest hat es Ludwig in etwa so kommentiert).
Datenbanken ohne Memofelder scheinen von diesem Speicherüberlauf wohl wenig bis gar nicht betroffen zu sein da ich schon Größere hatte wo eine Indexreparatur notwendig wurde. Gut möglich ist auch, daß einige User gar nicht merken wenn der Index defekt ist - schließlich wirkt sich der Fehler eher fast unbemerkt aus. |
|
|
|
|
|
#7 |
|
Entwickler
|
Möglicherweise gefixed durch diesen Patch: http://www.waldbauer.com/vb/showthread.php?t=2222
|
|
|
|
Antwort schreiben... |
| Themen-Optionen | Thema durchsuchen |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Drucken bis zum Absturz oder ins Nirwana | morning | SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum | 36 | 16.06.2009 14:24 |