我用DBGrid 来显示数据  但是我想把其中一条信息的其中一项  Stock   的数值改为   0  ,
表名  Goods   用adoquary
怎么写?
procedure TFrmBFManager.BitBtnBFClick(Sender: TObject);
var
   str:string;
begin
  ADOQ.Close;
  ADOQ.SQL.Clear;
  ADOQ.SQL.Add( 'update   Goods   set   Stock = 0   where   GNum=      ');
  ADOQ.ExecSQL;end;

解决方案 »

  1.   

    方法有很多,以下是我随便写写,希望有所提示。
    var
       Qry: TAdoQuery;
    begin
       try
    try
    Qry := TAdoQuery.Create(nil);
    Qry.Connection := AdoCon;
    Qry.CurLocation := clUseClient;
    with Qry do
    begin
    Close;
    SQL.Clear;
    SQL.Text := 'Select * From Goods Where GNum= '+IntToStr(No);
    Open;
    end;
    if Not Qry.Eof then
    begin
    Qry.Edit;
    Qry['Stock'] := 0;
    Qry.Post;
    end;
    Qry.ReQuery();
    exception
    on E: Exception do ShowMessage('数据库错误:'+E.Message);
    end;
       finally
    FreeAndNil(Qry);
       end;   
    end;
      

  2.   

    很简单,如果你是用dbgrid,可以直接在grid上编辑,鼠标点进去,直接改就是了如果用代码,掺了update外(这个需要重新load数据才能看到结果),可以点击那条记录,然后ADOQ.Edit
    ADOQ.FieldByName('stock').AsInteger:=1;
    ADOQ.Post;
      

  3.   

    1.可直接用update語句來實現;
    2.好像有一個GetDataText或GetDisplayText事件,在這兩個事件中加以處理