更新所有记录的一个字段?

时间:2010-11-23 05:38:51

标签: delphi

我有一个使用SELECT语句耦合到ADOQuery的DBGrid。

我想为所有记录更新一个字段。例如,当我在文本框中输入一些数据时,所有记录的字段“名称”(仅作为示例)将被更改。

2 个答案:

答案 0 :(得分:5)

为此,您可以触发查询。

“UPDATE table SET name = textBox.text”; 按照你的语法。只需改变那个没有任何where子句的字段就会改变你的所有企业。

答案 1 :(得分:1)

您可以使用SQL UPDATE语句一次更新所有这些记录。

如果您不希望(或不能)出于任何原因使用SQL UPDATE,并希望使用ADO记录集进行更新,则可以编写如下代码:

var
  AField : TField;
begin
  Assert(AdoQuery1.Active, 'Dataset is not active!');
  try
    AdoQuery1.DisableControls;
    AField := AdoQuery1.FieldByName('MyFieldName');
    AdoQuery1.First;
    while not AdoQuery1.Eof do
    begin
      AdoQuery1.Edit;
      AField.Value := Edit1.Text;
      AdoQuery1.Post;
      AdoQuery1.Next;
    end;
  finally
    AdoQuery1.EnableControls;
  end;
end;