Mitglieder löschen - Fehlermeldung

Hier melden JVerein-Benutzer ihre Fehler

Moderator: heiner

Hans Muff
Beiträge: 8
Registriert: Donnerstag 18. Februar 2010, 20:19

Mitglieder löschen - Fehlermeldung

Beitrag von Hans Muff »

Guten Abend

Ich möchte Mitglieder aus der Datenbank löschen und erhalte folgende Fehlermeldung:

Code: Alles auswählen

Fehler beim Löschen des Mitgliedes
java.rmi.RemoteException: delete failed, rollback successful; nested exception is: 
	org.h2.jdbc.JdbcSQLException: Referentielle Integrität verletzt: FKABRECHNUNG1: PUBLIC.ABRECHNUNG FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID)
Referential integrity constraint violation: FKABRECHNUNG1: PUBLIC.ABRECHNUNG FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID); SQL statement:
delete from MITGLIED where ID = 1760 [23003-117]
	at de.willuhn.datasource.db.AbstractDBObject.delete(AbstractDBObject.java:379)
	at de.jost_net.JVerein.gui.action.MitgliedDeleteAction.handleAction(MitgliedDeleteAction.java:70)
	at de.willuhn.jameica.gui.parts.ContextMenu$1.handleEvent(ContextMenu.java:172)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at de.willuhn.jameica.gui.GUI.loop(GUI.java:685)
	at de.willuhn.jameica.gui.GUI.init(GUI.java:219)
	at de.willuhn.jameica.system.Application.init(Application.java:140)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:85)
	at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: org.h2.jdbc.JdbcSQLException: Referentielle Integrität verletzt: FKABRECHNUNG1: PUBLIC.ABRECHNUNG FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID)
Referential integrity constraint violation: FKABRECHNUNG1: PUBLIC.ABRECHNUNG FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID); SQL statement:
delete from MITGLIED where ID = 1760 [23003-117]
	at org.h2.message.Message.getSQLException(Message.java:105)
	at org.h2.message.Message.getSQLException(Message.java:116)
	at org.h2.message.Message.getSQLException(Message.java:75)
	at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:377)
	at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:394)
	at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:273)
	at org.h2.table.Table.fireConstraints(Table.java:768)
	at org.h2.table.Table.fireAfterRow(Table.java:783)
	at org.h2.command.dml.Delete.update(Delete.java:75)
	at org.h2.command.CommandContainer.update(CommandContainer.java:72)
	at org.h2.command.Command.executeUpdate(Command.java:208)
	at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:116)
	at de.willuhn.datasource.db.AbstractDBObject.delete(AbstractDBObject.java:361)
	... 11 more
Ich habe einfach in der Mitgliederliste einen Rechtsklick gemacht und den Button "löschen" geklickt. Auch wenn ich auf Mitglied bearbeiten klicke und dann dort versuche zu löschen, erhalte ich die selbe Fehlermeldung.
Das Bearbeiten der Mitgliederdetails ist aber nach wie vor möglich.

Ich verwende Jameica unter Windows 7 bit.


Mache ich etwas falsch, oder kann mir jemand weiterhelfen?
Für Tipps wäre ich sehr dankbar.
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mitglieder löschen - Fehlermeldung

Beitrag von heiner »

Hallo Hans Muff,

die Meldung erscheint, weil es noch Sätze in der Abrechnungstabelle gibt, die auf das Mitglied zeigen.

Diese Fehlermeldung habe ich von anderer Stelle auch schon erhalten. Es wäre möglich, den Foreign Key so einzurichten, dass die Abrechnungssätze automatisch gelöscht werden, wenn das Mitglied gelöscht wird.

Die Frage an die Gemeinschaft: Ist das gewollt, dass die Abrechnungsdaten gelöscht werden?

Hinweis: Du kannst bei dem Mitglied ein Austritts- und ein Kündigungsdatum setzen. Dann wird das Mitglied bei Abrechnungen und Auswertungen nicht mehr berücksichtigt.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Hans Muff
Beiträge: 8
Registriert: Donnerstag 18. Februar 2010, 20:19

Re: Mitglieder löschen - Fehlermeldung

Beitrag von Hans Muff »

Danke für die Hilfe, sorry, dass ich mich erst so spät melde.

Ich habe die Datensätze aus der Abrechnungstabelle entfernt und danach hat alles wunschgemäß funktioniert.
Es wäre möglich, den Foreign Key so einzurichten, dass die Abrechnungssätze automatisch gelöscht werden, wenn das Mitglied gelöscht wird.
Wäre evt. eine Abfrage mit Auswahl möglich? Also ein Hinweis, dass man die Abrechnungssätze automatisch löschen lassen kann, wenn es gewünscht wird?
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mitglieder löschen - Fehlermeldung

Beitrag von heiner »

Hallo Hans Muff,

es ist möglich, so zu verfahren wie du beschrieben hast. Der Abrechnungssatz "hängt dann in der Luft". Er ist nicht mehr mit einem Mitglied verknüpft. Werden die Abrechnungssätze zum Mitgliedskonto ausgebaut. Siehe auch http://www.jverein.de/forum/viewtopic.php?f=7&t=19
Dann ist es erst recht problematisch, das Mitglied zu löschen. Warum muss das Mitglied denn eigentlich gelöscht werden? Die Abrechnung berücksichtigt nur angemeldete Mitglieder. Bei der Suche und bei den Auswertungen kannst du entscheiden, welchen Status das Mitglied haben soll. Ich persönlich lasse alle Mitglieder in der Datenbank und hatte noch nie Probleme damit.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
Hans Muff
Beiträge: 8
Registriert: Donnerstag 18. Februar 2010, 20:19

Re: Mitglieder löschen - Fehlermeldung

Beitrag von Hans Muff »

Ich kenne das noch von der alten Software, dass Mitglieder immer gelöscht werden mussten. Ich schaue mir das mit den abgemeldeten Mitgliedern aber mal an. Evt. kann ich ja auch einfach so verfahren.
Konstantin
Beiträge: 20
Registriert: Montag 6. September 2010, 12:14

Re: Mitglieder löschen - Fehlermeldung

Beitrag von Konstantin »

Das gleiche gibt es bei Referenz zu Mailempfänger ... wollte einen Testuser aus dem System entfernen. Ich habe dann die Mail gelöscht, war auch nur Test, allerdings hätte ich im Ernstfall evtl. Mails löschen müssen, die auch andere adressiert waren und deshalb zu Nachweis-Zwecken lieber erhaltenswert gewesen wären ... Tip? Gibt es vielleicht ein Utility-Klasse, die man per Kommando-Zeile nutzen könnte um DB zu bereinigen o.ä.?

Code: Alles auswählen

(SWT:2655): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 22
[Sat Oct 02 21:29:30 CEST 2010][ERROR][de.willuhn.jameica.messaging.LogMessageConsumer.handleMessage] Fehler beim Löschen des Mitgliedes
[Sat Oct 02 21:29:30 CEST 2010][ERROR][de.jost_net.JVerein.gui.action.MitgliedDeleteAction.handleAction] Fehler beim Löschen des Mitgliedes
java.rmi.RemoteException: delete failed, rollback successful; nested exception is: 
	org.h2.jdbc.JdbcSQLException: Referentielle Integrität verletzt: FKMAILEMPFAENGER2: PUBLIC.MAILEMPFAENGER FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID)
Referential integrity constraint violation: FKMAILEMPFAENGER2: PUBLIC.MAILEMPFAENGER FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID); SQL statement:
delete from MITGLIED where ID = 2 [23003-118]
	at de.willuhn.datasource.db.AbstractDBObject.delete(AbstractDBObject.java:379)
	at de.jost_net.JVerein.gui.action.MitgliedDeleteAction.handleAction(MitgliedDeleteAction.java:70)
	at de.willuhn.jameica.gui.parts.ContextMenu$1.handleEvent(ContextMenu.java:173)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at de.willuhn.jameica.gui.GUI.loop(GUI.java:692)
	at de.willuhn.jameica.gui.GUI.init(GUI.java:221)
	at de.willuhn.jameica.system.Application.init(Application.java:143)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:85)
	at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: org.h2.jdbc.JdbcSQLException: Referentielle Integrität verletzt: FKMAILEMPFAENGER2: PUBLIC.MAILEMPFAENGER FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID)
Referential integrity constraint violation: FKMAILEMPFAENGER2: PUBLIC.MAILEMPFAENGER FOREIGN KEY(MITGLIED) REFERENCES PUBLIC.MITGLIED(ID); SQL statement:
delete from MITGLIED where ID = 2 [23003-118]
	at org.h2.message.Message.getSQLException(Message.java:105)
	at org.h2.message.Message.getSQLException(Message.java:116)
	at org.h2.message.Message.getSQLException(Message.java:75)
	at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:377)
	at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:394)
	at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:273)
	at org.h2.table.Table.fireConstraints(Table.java:773)
	at org.h2.table.Table.fireAfterRow(Table.java:788)
	at org.h2.command.dml.Delete.update(Delete.java:77)
	at org.h2.command.CommandContainer.update(CommandContainer.java:72)
	at org.h2.command.Command.executeUpdate(Command.java:208)
	at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:116)
	at de.willuhn.datasource.db.AbstractDBObject.delete(AbstractDBObject.java:361)
	... 11 more


Verwaltung muss sein ;-)

http://www.tanden-aikido.de
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mitglieder löschen - Fehlermeldung

Beitrag von heiner »

Hallo Konstantin,

momentan ist es so gelöst, dass das Mitglied nur gelöscht werden kann, wenn es keine Referenzen mehr gibt. Die Frage ist doch, warum willst du das Mitglied (außer zu Testzwecken) löschen? Es gibt ein Austrittsdatum. Dann werden keine Abrechnungen ... mehr vorgenommen.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
scorpio
Beiträge: 6
Registriert: Freitag 10. September 2010, 21:18

Re: Mitglieder löschen - Fehlermeldung

Beitrag von scorpio »

heiner hat geschrieben:Die Frage ist doch, warum willst du das Mitglied (außer zu Testzwecken) löschen? Es gibt ein Austrittsdatum. Dann werden keine Abrechnungen ... mehr vorgenommen.
Vielleicht will er nur der gesetzlichen Verpflichtung nachkommen, dass keine persönlichen Daten gespeichert werden dürfen, wenn sie nicht mehr benötigt werden.
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Mitglieder löschen - Fehlermeldung

Beitrag von heiner »

Vielleicht will er nur der gesetzlichen Verpflichtung nachkommen, dass keine persönlichen Daten gespeichert werden dürfen, wenn sie nicht mehr benötigt werden.
Da fängt das Problem doch schon an. Ab wann werden die Daten nicht mehr gebraucht? Beim Mailversand wäre das vermutlich einfach zu beantworten. Sofern für irgendwelche Zwecke protokolliert werden muss, wer eine bestimmte Mail bekommen hat, kann das ggfls. auch in Papierform gemacht werden. Allerdings ist das dann auch schon wieder eine Speicherung. Das Bundesdatenschutzgesetz bezieht sich nämlich nicht nur auf digital gespeicherte Daten. Das gilt auch für Daten in Papierform.

Schwierig wird es bei den Mitgliedskonten und damit den Buchführungsdaten. Da gibt es sicher auch Aufbewahrungsfristen. Erst wenn die abgelaufen sind, werden die Daten nicht mehr benötigt. Ab diesem Zeitpunkt wäre dann eine Löschung wieder erforderlich.

Dieses Thema sollten wir mal hier im Forum ausgiebig diskutieren. Kurzfristig und überhastet werde ich keine Änderung am Programm vornehmen.

Wie sind eure Meinungen zu diesem Thema?


Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
scorpio
Beiträge: 6
Registriert: Freitag 10. September 2010, 21:18

Re: Mitglieder löschen - Fehlermeldung

Beitrag von scorpio »

heiner hat geschrieben:
Vielleicht will er nur der gesetzlichen Verpflichtung nachkommen, dass keine persönlichen Daten gespeichert werden dürfen, wenn sie nicht mehr benötigt werden.
Da fängt das Problem doch schon an. Ab wann werden die Daten nicht mehr gebraucht?
Das ist für die Möglichkeit, die Daten vollständig löschen zu können, doch irrelevant. Ob und wann die Daten gelöscht werden, liegt dann in der Verantwortung des die Daten Pflegenden. Nur muss die Möglichkeit dazu natürlich vorhanden und nicht kategorisch ausgeschlossen sein, weil es die Möglichkeit gar nicht gibt.

Wenn die Möglichkeit vorhanden, aber davon abhängig ist, dass keine Referenzen mehr existieren, sollte man imho mit einer entsprechenden Information und Verweisen auf eben jene Referenzen darauf aufmerksam machen. Dann kann ich als Datenverwalter entscheiden, ob ich die Daten noch (zwingend) benötige oder nicht.
Antworten