Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Merkwürdiger Indexfehler (https://www.delphipraxis.net/135832-merkwuerdiger-indexfehler.html)

HeikoAdams 18. Jun 2009 15:09

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

Merkwürdiger Indexfehler
 
Hallo,
ich habe zur Zeit ein merkwürdiges Problem mit einem Index. Beim Anlegen eines Datensatzes in die Tabelle werden im AfterInsert einige Felder mit Vorgabedaten gefüllt. Seit gestern können aber keine Daten mehr in der Tabelle gespeichert werden, da der Post-Befehl mit der Fehlermeldung "Indexfehler" abgebrochen wird. Ein Neuerstellen der Indizes der Tabelle mittels dbiRegenIndices brachte leider auch nicht den gewünschten Erfolg.

Merkwürdigerweise führt ein Löschen und Neuanlegen der Indizes der Tabelle dazu, das ein SetRange-Kommando, das vor dem Insert ausgeführt wird, fehlschlägt.

Hat hier jemand eine Idee, wie das Problem kurzfristig zu lösen ist. Erschwerend kommt hinzu, dass das Programm bei einem Kunden dazu führt, das dieser seit heute keine Aufträge mehr erfassen kann.

Gruß

Heiko

Bernhard Geyer 18. Jun 2009 15:14

Re: Merkwürdiger Indexfehler
 
Wie groß ist die DB? Liegt Sie auf einem Server oder lokal? AFAIK gibt es tools um zerschossene DB-Tabellen zu reparieren.

Schon mal gedanken gemacht Paradox/BDE zu entsorgen und auf was moderneres umzusteigen?

nahpets 18. Jun 2009 15:26

Re: Merkwürdiger Indexfehler
 
Hallo,

meine mich schwach an so ein Problem erinnern zu können, habe seinerzeit per Programm die Daten aus der vorhandenen Tabelle in eine neue Tabelle gleicher Struktur kopiert und dann die neuen Tabellen umbenannt und dem Programm untergeschoben. Nicht elegant, aber eventuell schnell genug um mal eben zu reparieren.
Eventuell gehts mit der Komponente BatchMove (BDE-Palettenseite) etwas schneller und eleganter, die kann ggfls. auch zusätzliche Tabellen erstellen, in denen Problemdatensätze protokolliert werden.
Es sieht mir so aus, als sei der Index der Paradoxtabelle zerschossen worden.

Kannst Du die Daten kurzfristig auf Konsistenz prüfen, ist da eventuell irgend ein Strubbel in eine Indexspalte geraten?

Wenn SetRange scheitert, kannst Du per Hand, TQuery und SQL... auf der Tabelle nachvollziehen, ob es, ausgehend von den Daten, funktionieren müsste oder siehst Du dort "unerwartete" Werte bzw. Datenkonstellationen?

Ansonsten schaum mal hier http://www.delphipraxis.net/internal...ct.php?t=58213

Reparaturwerkzeuge:
hier Pdxrbld
und hier TUtility

alex517 18. Jun 2009 15:29

Re: Merkwürdiger Indexfehler
 
Hallo Heiko,

wir hatten einige Male das Problem, dass zwar ein neuer Datensatz mit
einer neuen ID vorhanden war, der neue Wert des Autoinc-Feldes aber
nicht in der Header der Paradoxdatei zurückgeschrieben wurde.
Damit wurde versucht beim Neuanlegen eines Datensatzes die bereits vergeben ID
erneut zu vergeben, was zu einem Indexfehler führte.
Diesen Fehler hat auch keine Reparaturprogramm festgestellt oder korrigiert.
Nach deinen Schilderungen könnte es sich um den gleichen Fehler handeln.
Ich habe mir damals ein keines Programm zum Patchen der Paradoxdatei geschrieben.

Siehe Anhang

alex

HeikoAdams 18. Jun 2009 15:29

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von Bernhard Geyer
Wie groß ist die DB?

Die Tabelle ist 422 MB groß. Die komplette DB ist knapp 1,7 GB groß.

Zitat:

Zitat von Bernhard Geyer
Liegt Sie auf einem Server oder lokal?

Beim Kunden liegt liegt die DB auf einem Windows 2008 Small Buiseness Server. Das Problem lässt sich aber auch reproduzieren, wenn die DB lokal kopiert wird.

Zitat:

Zitat von Bernhard Geyer
AFAIK gibt es tools um zerschossene DB-Tabellen zu reparieren.

kennst Du zufälligerweise eins? Ich habe bislang nur das "Borland TUtility" ausprobiert, was aber immer behauptet, die Tabelle hätte keine Fehler.

Zitat:

Zitat von Bernhard Geyer
Schon mal gedanken gemacht Paradox/BDE zu entsorgen und auf was moderneres umzusteigen?

Daran haben wir schon öfters gedacht, jedoch hat der Kunde bislang nicht mitgezogen.

HeikoAdams 18. Jun 2009 15:43

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von alex517
Ich habe mir damals ein keines Programm zum Patchen der Paradoxdatei geschrieben.

Dein Programm lässt sich leider nicht starten. Es werden die vcl30 und die dinos.dpl benötigt :cry:

alex517 18. Jun 2009 15:50

Re: Merkwürdiger Indexfehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von HeikoAdams
Dein Programm lässt sich leider nicht starten. Es werden die vcl30 und die dinos.dpl benötigt :cry:

Uups, war mit Laufzeit-Packages compiliert.

Jetzt noch mal ohne.

HeikoAdams 18. Jun 2009 16:10

Re: Merkwürdiger Indexfehler
 
Jetzt funktioniert es, jedoch hat es das Problem leider nicht behoben. Der Indexfehler kommt nach wie vor

alex517 18. Jun 2009 16:21

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von HeikoAdams
Jetzt funktioniert es, jedoch hat es das Problem leider nicht behoben. Der Indexfehler kommt nach wie vor

was wurde denn angezeigt unter
alter Autoinc-Wert = ??
neu Autoinc-Wert = ??

wenn es der Fehler ist der bei und aufgetreten ist, dann
müsste "alter Autoinc-Wert" < "neu Autoinc-Wert" sein.
Zur Korrektur auf den [Ok]-Button klicken.

alex

HeikoAdams 18. Jun 2009 16:25

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von alex517
wenn es der Fehler ist der bei und aufgetreten ist, dann
müsste "alter Autoinc-Wert" < "neu Autoinc-Wert" sein.
Zur Korrektur auf den [Ok]-Button klicken.

Genau so war es. Jedoch hat die Korrektur das Problem nicht beseitigt. Da scheint wohl noch mehr im Argen zu sein


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz