waldbauer.com

waldbauer.com (http://www.waldbauer.com/vb/index.php)
-   SPI OA4 Open Access II/III/IV (2,3,4) Anwender Forum (http://www.waldbauer.com/vb/forumdisplay.php?f=57)
-   -   Diskette einlegen und <do:F10> drücken. 0:29999 (http://www.waldbauer.com/vb/showthread.php?t=2145)

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
Ich diesmal bei der INDEX Reparatur. Bevor ich Ludwig nun belästige ein für alle Mal ein tolles Index Reparatur Programm zu schreiben mal die Frage in die Runde woher der Fehler kommt.

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

Performance: Am Client im Netz kopiert er 6.000 Datensätze / Minute - am Server direkt 20.000 / Minute.

Leider war das wieder nur ein Versuch - nichtmal 100.000 hat er geschafft. Nächste Fehlermeldung:

Code:

-Zeile 1 : BU29707 Ende des Speichers.
gefolgt von:

Code:

BU29706 Diskettenfehler (I/O-Fehler)
Jetzt muss ich wohl 30.000er Schritte machen :-)

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


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

Ü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.

Möglicherweise gefixed durch diesen Patch: http://www.waldbauer.com/vb/showthread.php?t=2222


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.