Hallo alle zusammen, Die programmiersprache ist Java Datenbakseitig :SQLServer 2008 ich möchte in eine JTable neue zeilen einfügen bzw löschen und dann in sqlServer auch speichern. Mit dem Einfügen funktioniert einwandfrei, nur mir ist nicht ganz klar wie ich das mache mit dem Löschen von Zeilen. Da die in der Tabelle viele spalten die auf andere Tabelle referenzieren. Beim Einfügen, Update, funktioniert alles super nur wie solle ich überprüfen beim löschen in einem zeile ob es die datensätze keine referenzen haben. Für Jeden Vorschlag bin ich dankbar.
Hat keine einen Vorschlag. Mir ist nur nicht ganz klar wie ich auf die datenbanken seite zu überprüfen ob der datensatz einen verweis hat. Ich habe so gedacht: 1) ich frage der Tabelle ab, was für Fremdschlüssel hat und dann...
Wie würdest du das denn mit SQL machen? Genau so musst du es programmieren.
Das hat nun aber nix mit einer "JTable" zu tun, du mußt (beim einfügen übrigens auch) einfach eine passende Fehlerbehandlung einfügen, nur weil Fremdschlüssel existieren muß es nicht heißen, dass das löschen klappt, ebenso wen keine existieren kann deinem User immer noch das DELETE Recht fehlen...
Danke für die Antwort. wie kann ich wissen mit SQl wo es die Primärschlüssel von eine Tabelle x als Fremschlüssel in einen Tabelle Y verwendet.
Wiener_Gast schrieb: > Danke für die Antwort. > > wie kann ich wissen mit SQl wo es die Primärschlüssel von eine Tabelle x > als Fremschlüssel in einen Tabelle Y verwendet. Das steht in der Dokumentation deines SQL Servers.
ja danke habe ich gerade gesehen. Da es diese Tabelle pflichfelder (die auch als fremdschlüssel sind). Gibt es noch einen Möglichkeit trotzdem einen Zeile zu löschen?
Wiener_Gast schrieb: > Da es diese Tabelle pflichfelder (die auch als fremdschlüssel sind). > Gibt es noch einen Möglichkeit trotzdem einen Zeile zu löschen? Keiner hier kennt das Modell deiner Datenbank. Du musst erst mal wissen wie deine Datenbank aufgebaut ist, wie die Tabellen über Schlüssel miteinander verknüpft sind. Wenn du Elemente löschen willst, musst du von 'unten' anfangen. Das heisst erst müssen alle Elemente von abhängigen Tabellen gelöscht sein, deren Fremdschlüssel auf deinen Tabelleneintrag zeigen. Erst dann kann man den führenden Eintrag löschen. Das Ganze kann man evt. teilweise mit Constraints beim Definieren der Tabellen automatisieren. Stichwort wäre dafür "on delete cascade" in der DDL. Der Inhalt deiner Tabellen hat erst mal nichts mit einem JTable zu tun. Du solltest je eine eigene Klasse für jede Tabelle in Java definieren, die einzelnen Einträge wären dann Objekte dieser Klasse. Die kann man dann in Listen halten und mit deiner Anzeigeschicht (JTable) verknüpfen. Die Kommunikation mit der Datenbank würde ich in eine eigene Schicht von Klassen auslagern, suche mal dach dem Konzept von DAOs (Database access objects). Das ist für mittelgroße Anwendungen sauber, überschaubar und relativ gut in Sachen Performance.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.