Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#1

ClientDataSet ApplyUpdates

  Alt 13. Nov 2008, 15:21
Datenbank: MS SQL Server • Zugriff über: ADO
Tach Kollegen!
Ich habe folgendes Problem:
Ich möchte mit ApplyUpdates am CDS vorgenommene Änderungen in die DB übertragen und erhalte dabei immer den Fehler
"Datensatz nicht gefunden oder von einem anderen Benutzer geändert"
Ich habe leider keine Ahnung, wieso...
Hier der aufs Wesentliche reduzierte Code:
Delphi-Quellcode:
procedure FormShow(Sender: TObject)
var
  sql_anweisung:string;
  i, j:integer;
begin
  sql_anweisung:='SELECT * FROM MYPE';
  with datamodule3 do
  begin
    clientdataset1.FileName:='H:\cds-file\test.cds';
    if db_open(sql_anweisung) then
    begin
      clientdataset1.active:=true;
      clientdataset1.active:=false;
      clientdataset1.CreateDataSet;
      clientdataset1.close;
      clientdataset1.open;
    end;
  end;
end;

function TForm2.db_open(sql_anweisung:string):boolean;
begin
  try
    datamodule3.ADOConnection1.Open();
    result:=true;
  except
    result:=false;
  end;
  with datamodule3 do
    if Datamodule3.ADOConnection1.Connected then
    begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add(sql_anweisung);
      ADOQuery1.open;
    end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  datamodule3.ClientDataSet1.edit;
  datamodule3.ClientDataSet1.fieldbyname('AGE').asinteger:=31;
  datamodule3.ClientDataSet1.Post;
  datamodule3.ClientDataSet1.ApplyUpdates(-1);
end;
  Mit Zitat antworten Zitat