我用一个query查询,并在一个dbgrid中显示出来,
  然后,我想按一个按钮对这次显示的内容的所有记录的某个字段都进行修改,  各位,,该怎么做呀,,   如果还要另一个query进行update的话,又要重新查一次,这样效率太低了

解决方案 »

  1.   

    form1.dbgrid1.datasource.dataset.open;
    form1.dbgrid1.datasource.dataset.first;
    i:=form1.dbgrid1.datasource.dataset.recordcount;
    for j:= 0 to i-1 do
    begin
      form1.dbgrid1.datasource.dataset.edit;
      form1.dbgrid1.datasource.dataset.fieldvalues[fieldname]:=修改的值;
      form1.dbgrid1.datasource.dataset.post;
      form1.dbgrid1.datasource.dataset.next;
    end;
      

  2.   

    建议程序改为:form1.dbgrid1.datasource.dataset.open;
    form1.dbgrid1.datasource.dataset.first;WHILE NOT dbgrid1.datasource.dataset.EOF DO
    begin
      form1.dbgrid1.datasource.dataset.edit;
      form1.dbgrid1.datasource.dataset.fieldvalues[fieldname]:=修改的值;
      form1.dbgrid1.datasource.dataset.post;
      form1.dbgrid1.datasource.dataset.next;
    end;用recordcount 有时会有一些说不清楚的问题。
      

  3.   

    楼上的兄弟,,我试着用了一下,, 编译通过了,可是在程序运行时提示  
      'cannot modify a read-only dataset '错误,,  怎么,还要query的什么属性呀,,