Hallo
Ich stelle Daten einer
DB (SQLServer2000) in einem DBGrid dar. Dazu verwende ich ein ADODataSet.
Ich möchte nun z.B das Grid aktualisieren. Dazu verwende ich die Methode Resync. Leider wird daraufhin eine Fehlermeldung ausgegeben: "nicht genügend Schlüsselfeldinformationen zu Aktualisieren".
Woran liegt das?
Ich verwende als
Query eine JOIN-Anweisung.
Ich verwende folgende Einstellungen:
CursorLocation : Client;
LockType : Optimistic;
Delphi-Quellcode:
procedure TF_UEL.ADODataSet1AfterOpen(DataSet: TDataSet);
begin
ADODataSet1.Recordset.Properties['Update Criteria'].Value := adCriteriaKey;
ADODataSet1.Recordset.Properties['Unique Table'].Value := 'TBL_AAA';
end;
procedure TF_UEL.BitBtn1Click(Sender: TObject);
resourcestring
cCmd = JOINABFRAGE;
begin
ADODataSet1.Recordset.Properties['Resync Command'].Value := cCmd;
ADODataSet1.Recordset.Resync(adAffectCurrent, adResyncAllValues);
end;
Danke für Tips
PS: Das selbe Problem tritt auf, wenn ich einen Wert in der
DB ändern möchte:
Delphi-Quellcode:
procedure TF_UEL.SaveBoolean;
begin
Self.DBGrid1.SelectedField.DataSet.Edit;
Self.DBgrid1.SelectedField.AsBoolean := not Self.DBgrid1.SelectedField.AsBoolean;
Self.DBGrid1.SelectedField.DataSet.Post;
end;