AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird Subtabelle plötzlich komplett leer
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Subtabelle plötzlich komplett leer

Ein Thema von BlueStarHH · begonnen am 24. Apr 2023 · letzter Beitrag vom 26. Apr 2023
Antwort Antwort
Seite 1 von 2  1 2      
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#1

Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 14:26
Datenbank: Firebird • Version: 3.x • Zugriff über: IBDAC
Hallo,

in einer Firebird Datenbank, die nur ich verwenden (lokal auf meinem PC) ist eine Subtabelle plötzlich komplett leer. In dem Log meiner Software ist kein "delete" SQL-Befehl seit dem Tag, an dem alle Datensätze verschwunden sind, aufgezeichnet. Wie kann so etwas entstehen? Ich kann mich nicht erinnern, dass ich auf diese Subtabelle jemals manuell SQL-Querys angewandt habe. Immer nur über die IBDAC-Komponenten einzelne Datensätze gelöscht oder hinzugefügt. Mit ATable.Insert und ATable.Delete. Fehlermeldungen gab es auch keine. Mit dem IBExpert nachgeschaut: Die Tabelle ist wirklich leer. Zum Glück hatte ich ein Backup.

Geändert von BlueStarHH (24. Apr 2023 um 15:01 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 14:37
was sagt gfix zu der Datenbank? (gfix -v -full....)
Gibt es cascading Updates / Delets? Also wie sieht die Tabellenstruktur aus?
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 14:58
was sagt gfix zu der Datenbank? (gfix -v -full....)
Teste ich nachher. Danke für den Tipp.

Gibt es cascading Updates / Delets?
Hauptdatensätze sind noch alle da. Gelöscht werden die nur in Ausnahmen. Dann auch nur einzelne. Das verknüpfte ID-Feld sollte sich nie ändern.

Also wie sieht die Tabellenstruktur aus?
Code:
CREATE GENERATOR GEN_VORGANGPOSSER_ID;

CREATE TABLE VORGANGPOSSER (
    ID           SMALLINT NOT NULL,
    VGPOSID      INTEGER NOT NULL,
    BEZEICHNUNG  VARCHAR(40),
    SERIENNUMMER VARCHAR(40)
);

ALTER TABLE VORGANGPOSSER ADD PRIMARY KEY (ID);
ALTER TABLE VORGANGPOSSER ADD CONSTRAINT FK_VORGANGPOSSER_VGPOSID FOREIGN KEY (VGPOSID) REFERENCES VORGANGPOS (ID) ON DELETE CASCADE ON UPDATE CASCADE;

CREATE OR ALTER TRIGGER VORGANGPOSSER_BI FOR VORGANGPOSSER
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_vorgangposser_id,1);
end

Geändert von BlueStarHH (24. Apr 2023 um 15:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 15:00
Daran könnte es liegen:
ALTER TABLE VORGANGPOSSER ADD CONSTRAINT FK_VORGANGPOSSER_VGPOSID FOREIGN KEY (VGPOSID) REFERENCES VORGANGPOS (ID) ON DELETE CASCADE ON UPDATE CASCADE;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 15:07
Joar, gibt ja nur ein paar Möglichkeiten

* jemand hat wirklich in der SubTabelle alles gelöscht
* wenn in der HauptTabelle gelöscht wird, dann entfernt das ON DELETE CASCADE auch das Jeweilige in der SubTabelle

* mit ON DELETE SET NULL blieben diese SubDatensäte erhalten, aber die Referenz wird NULL
* bei ON DELETE NO ACTION ... heißt "nothing is done" dass die SubDatensätze unverändert da bleiben, oder wird der Hauptdatensatz dann nicht gelöscht?
* und ohne ON DELETE sollte das DELETE im Hauptdatensatz knallen, weil noch abhängige Daten vorhanden sind
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 24. Apr 2023, 15:17
Bei NO ACTION kann der übergeordnete Datensatz nicht gelöscht werden, da sonst die referenzielle Integrität verletzt würde.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 25. Apr 2023, 19:49
was sagt gfix zu der Datenbank? (gfix -v -full....)?
Summary of validation errors
Number of record level warnings : 1
Number of pointer page warnings : 3

Was sagt das mir?
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
848 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 25. Apr 2023, 19:52
Es ist heute wieder passiert. Wieder alle Datensätze der Subtabelle weg. Garantiert habe ich seit dem letzten mal kein SQL-Statement selbst ausgeführt. Maximal 5 Hauptdatensätze gelöscht. Kann IBDAC evtl. einen Fehler haben, dass durch das ON DELETE CASCADE dann ALLE Datensätze in der Subtabelle gelöscht werden und nicht nur die Datensätze die zu den Hauptdatensätzen gehören? Wie kann ich das sinnvoll loggen?

Geändert von BlueStarHH (25. Apr 2023 um 21:55 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 25. Apr 2023, 20:02
Hallo,
hast Du vielleicht Trigger drauf?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

AW: Firebird Subtabelle plötzlich komplett leer

  Alt 25. Apr 2023, 20:33
hast Du vielleicht Trigger drauf?
Wie kann ich das sinnvoll loggen?
Auch mit einem Trigger.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.
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