我想直接在DBGridEh1中修改单元数据
procedure Tcgdd.ADOTable2jsSetText(Sender: TField; const Text: string);
begin
  ........
end;
procedure Tcgdd.ADOTable2BeforePost(DataSet: TDataSet);
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from spda where code=:code');
  Query1.Parameters[0].Value := ADOtable2.fieldbyname('spcode').asstring;
  Query1.Open;
  if Query1.RecordCount = 0 then
  begin
//    showmessage('输入的商品编码不正确');
    ADOTable2.cancel;
  end;
end;
但是当我点击下一个单元时,数据又恢复到初始状态,DBGridEh1修改的数据怎么不能提交到数据库中?