Delphi-PRAXiS

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

alex517 18. Jun 2009 17:25

Re: Merkwürdiger Indexfehler
 
Nur als Hinweis noch, während der Korrektur sollte kein anderes Programm Zugriff auf die
Paradox-Datei haben. Sonst kann es sein das die Änderung gleich wieder mit dem
fehlerhaften Wert übergeplättet wird.

alex


p.s.
Wir sind zum Glück seit einigen Jahren auf Firebird+FibPlus umgestiegen :-D

hoika 18. Jun 2009 17:34

Re: Merkwürdiger Indexfehler
 
Hallo,

ich habe hier auch ein Kopier-Programm.
Es wird die kaputte .DB benötigt und eine frische leere Tabelle
(komplett, .db, .px. .xg0, .yg0).
Bei Interesse bei mir melden.

Beim Kopieren werden die AutIncs berücksichtigt.

Du lönntest aber auch noch ein
1. Komprimieren der Tabelle per DBD machen
2. Das AutoInc in ein Integer umformen und dann wieder zurück
3. Weg von Pdx ... jaja, musste sein ;)

Übrigensd habe ich hier ein ursprünglich Pdx-Programm,
was mit ein wenig Aufwand jetzt unter FireBird läuft,
allerdings immer noch per BDE (SQL-Links).
Der Umstieg war nicht sooo schlimm.


Heiko

Bernhard Geyer 18. Jun 2009 21:52

Re: Merkwürdiger Indexfehler
 
Zitat:

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

[/quote]
Bei der größe kannst du froh sein das die DB eh nicht viel öfters kaputt geht.

Schon mal propiert die Virenscanner so zu konfigurieren das sie die DB-Dateien nicht scannen?

Zitat:

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

Selber Googlen ist angesagt: Bei Google suchenparadox repair liefert viele Ergebnisse. Da wir selbst nix mehr mit BDE machen kann ich dir hier keine genauen Tipps geben.

Zitat:

Zitat von HeikoAdams
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.

Sowas muß man intern durchführen. Denn dem Kunden ist die Technik egal solange sie funktioniert. Und da die BDE eh schon ein kritisches Element ist muß man selbst nach Alternativen Suchen. Denn wenn man nichts macht ist man irgendwann weg vom Fenster (Markt) da einen die Technikprobleme über den Kopf wachsen.

HeikoAdams 19. Jun 2009 07:27

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von Bernhard Geyer
Sowas muß man intern durchführen. Denn dem Kunden ist die Technik egal solange sie funktioniert. Und da die BDE eh schon ein kritisches Element ist muß man selbst nach Alternativen Suchen. Denn wenn man nichts macht ist man irgendwann weg vom Fenster (Markt) da einen die Technikprobleme über den Kopf wachsen.

Das Problem an der Sache ist, dass das Programm speziell für diesen einen Kunden erstellt wurde.

BTW: Das Problem hat sich in sofern erledigt, als das der Kunde eine Datensicherung der Datenbank zurückgespielt hat.

Bernhard Geyer 19. Jun 2009 07:41

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von HeikoAdams
Das Problem an der Sache ist, dass das Programm speziell für diesen einen Kunden erstellt wurde.

Und wie sieht es mit Gewährleistungsvereinbarungen im Werksvertrag aus? Ansonsten könntest du in ziemliche Probleme geraten falls das BDE/Paradoxproblem sich als hartnäckig erweist. Denn dann darfst du u.U. eine BDE-Lose Lösung entwickeln ohne einen € vom Kunden zu bekommen wenn es Hart auf Hart kommt.

HeikoAdams 19. Jun 2009 08:10

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von Bernhard Geyer
Und wie sieht es mit Gewährleistungsvereinbarungen im Werksvertrag aus? Ansonsten könntest du in ziemliche Probleme geraten falls das BDE/Paradoxproblem sich als hartnäckig erweist. Denn dann darfst du u.U. eine BDE-Lose Lösung entwickeln ohne einen € vom Kunden zu bekommen wenn es Hart auf Hart kommt.

Also laut Aussage meines Chefs hat der Kunde keinerlei Wartungsvertrag o.ä. mit uns abgeschlossen und das Programm ist, da es seit über 5 Jahren beim Kunden laüft, aus jeder Gewährleistung oder Garantie raus.

Darüber hinaus existiert laut meinem Chef auch kein Werkvertrag, in dem irgendwelche Gewährleistungen geregelt sind - warum auch immer. Ich bin auch erst seit etwas mehr als 2 Jahren in dieser Firma.

Bernhard Geyer 19. Jun 2009 08:20

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von HeikoAdams
Also laut Aussage meines Chefs hat der Kunde keinerlei Wartungsvertrag o.ä. mit uns abgeschlossen und das Programm ist, da es seit über 5 Jahren beim Kunden laüft, aus jeder Gewährleistung oder Garantie raus.

Und seit 5 Jahren läuft das Programm unverändert oder hat der Kunde zwischenzeitlich Erweiterungen beauftragt und bekommen. Falls ja beginnt damit auch jeweils wieder die Zeiten bezüglich Gewährleistung/Garantie neu. U. u. auch für das ganze Programm/System.

HeikoAdams 19. Jun 2009 08:28

Re: Merkwürdiger Indexfehler
 
Zitat:

Zitat von Bernhard Geyer
Und seit 5 Jahren läuft das Programm unverändert oder hat der Kunde zwischenzeitlich Erweiterungen beauftragt und bekommen.

Wir haben einige male einzelne Programmteile auf Wunsch des Kunden erweitert oder an geänderte Rahmenbedingungen angepasst und natürlich Fehler korrigiert.

Zitat:

Zitat von Bernhard Geyer
Falls ja beginnt damit auch jeweils wieder die Zeiten bezüglich Gewährleistung/Garantie neu. U. u. auch für das ganze Programm/System.

Ist das wirklich so? Das würde ja bedeuten, das z.B. die Garantie für mein Auto von vorne beginnt, sobald der Auspuff nach 2 Jahren repariert wird. DAS kann ich mir nur schwer vorstellen, so schön es auch wäre.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.

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