Autor Beitrag
Der Schreckliche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Windows 7
Delphi XE5
BeitragVerfasst: Do 20.12.07 17:13 
Ich muss bei einer Accesstabelle jeden Datensatz mit unterschiedlichen Daten ändern.
Mit EDIT bekomme ich die Fehlermeldung: "Es sind zuviele Zeilen von der Änderung betroffen"
Mit UPDATE wird jeder Datensatz mit den gleichen Daten geändert.
Wie kann ich große Tabellen ändern?
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 20.12.07 18:49 
Ich bin mir nicht ganz sicher, aber vermutlich gibt es irgendwo eine exakte Kopie eines Datensatzes. Ich vermute weiterhin, das die Tabelle keinen Primary Key, also eine Spalte mit garantiert eindeutigen Werten, besitzt.

Beispiel: Deine Tabelle sieht so aus
ausblenden Quelltext
1:
2:
3:
1 | X
1 | X
2 | Y

Und Di willst jetzt bei der einen Zeile '1,X' das X in ein Y ändern. Dann werden ja zwei Zeilen verändert, weil das DBMS keine Möglichkeit hat, die beiden Zeilen voneinander zu unterscheiden. Klar geht ein Update, aber bei einem 'Edit' erwartet das TDataset nunmal, das das DBMS ihm 'Eine Zeile verändert' als Antwort zurückliefert.

Erstelle einen Primary Key (AutoInc) mit einem beliebigen Namen. Das sollte das Problem lösen.

_________________
Na denn, dann. Bis dann, denn.
Der Schreckliche Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Windows 7
Delphi XE5
BeitragVerfasst: Do 20.12.07 19:20 
Hey Super, das habe ich gerade entsprechend geändert.
Und es funktioniert.
Danke Dir.