Einzelnen Beitrag anzeigen

ickehausen

Registriert seit: 29. Jul 2004
85 Beiträge
 
Delphi 2010 Enterprise
 
#1

Löschen von Datensätzen nicht möglich

  Alt 16. Mai 2006, 14:54
Datenbank: Interbase • Version: 6 • Zugriff über: IBX
Hallöle,

grade habe ich es geschafft, dass in meiner DB ein ID-Feld mittels Trigger und Generator gefüllt wird, da tauch ein neues Problem auf.
Ich kann keine Datensätze aus der DB mit meiner Anwendung löschen.

Ich greife über ein DataSet auf die DB zu. Wenn ich über ein Table zugreife, dann geht Löschen. Ich möchte aber über DataSet zugreifen, da ich die Daten in der Anzeige sortieren möchte.

Wenn ich den Datensatz im Grid gelöscht habe (zumindest visuell), wird der Post-Button des DB-Navigator erst aktiv, wenn ich den Refresh-Button oder den Insert-Button gedrückt habe. Im Grid scheint der Datensatz dann gelöscht zu sein. Starte ich die Anwendung neu, ist der "gelöschte" Datensatz aber noch vorhanden.

Ich vermute, dass das Problem bei den SQL-Anweisungen der DataSet-Komponente liegt.

Die Tabelle Mitglieder der DB hat folgende Felder:

Zitat:
MitgliedID, wird von Trigger gefüllt,
Name
Vorname
Anschrift
PLZ
Ort
Geburtsdatum
Eintrittsdatum
Austrittsdatum
Geburtsdatum
Telefon
Die SQL-Anweisungen der DataSet-Komponente lauten:

SQL-Code:
delete from MITGLIEDER
where
  MITGLIEDSID = :OLD_MITGLIEDSID and
  NAME = :OLD_NAME and
  VORNAME = :OLD_VORNAME and
  ANSCHRIFT = :OLD_ANSCHRIFT and
  PLZ = :OLD_PLZ and
  ORT = :OLD_ORT and
  GEBURTSDATUM = :OLD_GEBURTSDATUM and
  EINTRITTSDATUM = :OLD_EINTRITTSDATUM and
  AUSTRITTSDATUM = :OLD_AUSTRITTSDATUM and
  TELEFON = :OLD_TELEFON
SQL-Code:
insert into MITGLIEDER
  (NAME, VORNAME, ANSCHRIFT, PLZ, ORT, GEBURTSDATUM, EINTRITTSDATUM,
   AUSTRITTSDATUM, TELEFON)
values
  (:NAME, :VORNAME, :ANSCHRIFT, :PLZ, :ORT, :GEBURTSDATUM,
   :EINTRITTSDATUM, :AUSTRITTSDATUM, :TELEFON)
SQL-Code:
update MITGLIEDER
set
  NAME = :NAME,
  VORNAME = :VORNAME,
  ANSCHRIFT = :ANSCHRIFT,
  PLZ = :PLZ,
  ORT = :ORT,
  GEBURTSDATUM = :GEBURTSDATUM,
  EINTRITTSDATUM = :EINTRITTSDATUM,
  AUSTRITTSDATUM = :AUSTRITTSDATUM,
  TELEFON = :TELEFON
where
  NAME = :OLD_NAME and
  VORNAME = :OLD_VORNAME and
  ANSCHRIFT = :OLD_ANSCHRIFT and
  PLZ = :OLD_PLZ and
  ORT = :OLD_ORT and
  GEBURTSDATUM = :OLD_GEBURTSDATUM and
  EINTRITTSDATUM = :OLD_EINTRITTSDATUM and
  AUSTRITTSDATUM = :OLD_AUSTRITTSDATUM and
  TELEFON = :OLD_TELEFON
SQL-Code:
Select
  NAME,
  VORNAME,
  ANSCHRIFT,
  PLZ,
  ORT,
  GEBURTSDATUM,
  EINTRITTSDATUM,
  AUSTRITTSDATUM,
  TELEFON
from MITGLIEDER
where
  NAME = :NAME and
  VORNAME = :VORNAME and
  ANSCHRIFT = :ANSCHRIFT and
  PLZ = :PLZ and
  ORT = :ORT and
  GEBURTSDATUM = :GEBURTSDATUM and
  EINTRITTSDATUM = :EINTRITTSDATUM and
  AUSTRITTSDATUM = :AUSTRITTSDATUM and
  TELEFON = :TELEFON
select * from MITGLIEDER Wo ist mein Fehler????
Es gibt keine dummen Fragen ...
  Mit Zitat antworten Zitat