Bitte DDL hier posten.
Sonst kann man nur raten, was die Ursache sein kann.
SQL-Code:
CREATE TABLE Kunden (
KdNr
VARCHAR(15)
CHARACTER SET ASCII NOT NULL,
...
)
ALTER TABLE Kunden
ADD CONSTRAINT PK_Kunden
PRIMARY KEY (KdNr);
CREATE TABLE Rechnungen (
KdNr
VARCHAR(15)
CHARACTER SET ASCII NOT NULL,
RgNr
VARCHAR(25)
CHARACTER SET ASCII NOT NULL,
ErsetztRgNr
VARCHAR(25)
CHARACTER SET ASCII,
...
)
ALTER TABLE Rechnungen
ADD CONSTRAINT PK_Rechnungen
PRIMARY KEY (RgNr);
ALTER TABLE Rechnungen
ADD CONSTRAINT FK_Rechnungen_1
FOREIGN KEY (ErsetztRgNr)
REFERENCES Rechnungen (RgNr);
ALTER TABLE Rechnungen
ADD CONSTRAINT FK_Rechnungen_2
FOREIGN KEY (KdNr)
REFERENCES Kunden (KdNr)
ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE Notizen (
NotizNr
INTEGER NOT NULL,
RgNr
VARCHAR(25)
CHARACTER SET ASCII,
NOTIZ BLOB SUB_TYPE 1 SEGMENT SIZE 80
...
);
ALTER TABLE Notizen
ADD CONSTRAINT PK_Notizen
PRIMARY KEY (NotizNr);
ALTER TABLE Notizen
ADD CONSTRAINT FK_Notizen_1
FOREIGN KEY (RgNr)
REFERENCES Rechnungen (RgNr)
ON DELETE CASCADE ON UPDATE CASCADE;
Was gibt
Code:
select * from Rechnungen where RgNr = 4
zurück?
Das zeigt jetzt die Rechnung 4. Zum Zeitpunkt des Fehlers habe ich das nicht abgefragt. Die Rechnung 4 wurde aber im
DB Grid zum Fehlerzeitpunkt angezeigt. Auch hier nochmal der Hinweis: Es handelt sich bei dem Fehler um 2 Rechnungen (4 und 5) die nichts miteinander zu tun haben und die auch
nicht wechselseitig von den Benutzern bearbeitet wurden. Je der Benutzer hat ausschließlich mit 4
oder 5 gearbeitet.