Hallo Leute!
Ich hab ein ziemlich vertracktes Problem: Ich hab ein DBGrid, das über eine eigene DataSource, ein eigenes ADOTable und eine allgemeine ADOConnection auf eine Access2000 DB zugreift. Das Table das dargestellt wird besteht aus zwei Feldern: Time und Execute, beides vom Typ Text.
(Dieses Table soll einen Scheduler füttern). Primärschlüssel hat das Table bewusst keinen. Angezeigt wird alles wunderbar, und auch die anderen Tables
in der Datenbank kann ich perfekt lesen und schreiben (von andern Programmstellen aus).
Aber jetzt das Problem: Sobald ich einen Wert ändere, und dann die Zelle verlasse, krieg ich diese Exception:
EOleException with message <b>'Die Schlüsselspalteninformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen'.</b>
Die Änderungen werden eigentlich erst beim Klick auf einen OK Button gepostet, aber diese Meldung kommt offensichtlich von Access, was ist da los, warum werden die Änderungen schon übermittelt? Und was soll ich mit dieser Fehlermeldung anfangen?
Wäre froh um ein paar hilfreiche Tips!
Gruss Lukas
P.S. Hier ist noch der wichtige Code von der betroffenen Form, falls noch etwas unklar ist:
<pre>
procedure TSchedulerForm.DBGridSchedulerEditButtonClick(Send er: TObject);
begin
TimerExForm.Show;
end;
procedure TSchedulerForm.OKBtnClick(Sender: TObject);
begin
ADOTableScheduler.Post;
SchedulerForm.Close;
end;
procedure TSchedulerForm.CancelBtnClick(Sender: TObject);
begin
ADOTableScheduler.Cancel;
SchedulerForm.Close;
end;
procedure TSchedulerForm.FormShow(Sender: TObject);
begin
MainForm.ADOConnection.Open;
ADOTableScheduler.Open;
ADOTableScheduler.Edit;
end;</pre>
Ich hab ein ziemlich vertracktes Problem: Ich hab ein DBGrid, das über eine eigene DataSource, ein eigenes ADOTable und eine allgemeine ADOConnection auf eine Access2000 DB zugreift. Das Table das dargestellt wird besteht aus zwei Feldern: Time und Execute, beides vom Typ Text.
(Dieses Table soll einen Scheduler füttern). Primärschlüssel hat das Table bewusst keinen. Angezeigt wird alles wunderbar, und auch die anderen Tables
in der Datenbank kann ich perfekt lesen und schreiben (von andern Programmstellen aus).
Aber jetzt das Problem: Sobald ich einen Wert ändere, und dann die Zelle verlasse, krieg ich diese Exception:
EOleException with message <b>'Die Schlüsselspalteninformationen sind ungenügend oder inkorrekt. Es sind zu viele Zeilen von der Aktualisierung betroffen'.</b>
Die Änderungen werden eigentlich erst beim Klick auf einen OK Button gepostet, aber diese Meldung kommt offensichtlich von Access, was ist da los, warum werden die Änderungen schon übermittelt? Und was soll ich mit dieser Fehlermeldung anfangen?
Wäre froh um ein paar hilfreiche Tips!
Gruss Lukas
P.S. Hier ist noch der wichtige Code von der betroffenen Form, falls noch etwas unklar ist:
<pre>
procedure TSchedulerForm.DBGridSchedulerEditButtonClick(Send er: TObject);
begin
TimerExForm.Show;
end;
procedure TSchedulerForm.OKBtnClick(Sender: TObject);
begin
ADOTableScheduler.Post;
SchedulerForm.Close;
end;
procedure TSchedulerForm.CancelBtnClick(Sender: TObject);
begin
ADOTableScheduler.Cancel;
SchedulerForm.Close;
end;
procedure TSchedulerForm.FormShow(Sender: TObject);
begin
MainForm.ADOConnection.Open;
ADOTableScheduler.Open;
ADOTableScheduler.Edit;
end;</pre>
Comment