Q&A

  • [질문급]여러레코드 한꺼번에.. 수정 .. 도와주세요
여러 레코드의 같은 필드 값을 한꺼번에 수정하고 싶습니다

그런데 커서가 위치한 한곳의 값만이 변경되고 다른것은

변경이 되지 않습니다

detailgrid의 내용이 여러줄인데

한줄 한줄 변경하다가는 날샐것 같은데요..

어떻게 하면 좋져



procedure TFormP1000A.update_modcost;

var i : integer;



begin



for i :=1 to detailgrid.RowCount-1 do // 여기 이줄만 첨가하면 될줄

알았는데 .. 안되나요

커서가 위치한 값 한줄레코드만 바뀌네요..

-.-;;;



with qrmod do

begin

Close;

SQL.Clear;

SQL.Add('update P1100 SET MOD_UNITCOST =:MOD_UNITCOST WHERE ORDNO=:ORDNO AND WRCD=:WRCD');

ParamByName('ORDNO').AsString := MasterGrid.Cells[0,MasterGrid.Row];

ParambyName('MOD_UNITCOST').asfloat := strtofloat(DetailGrid.Cells[7,DetailGrid.Row]);

ParambyName('WRCD').AsString := DetailGrid.Cells[2,DetailGrid.Row];

ExecSql;

end;

showmessage('수정단가가 저장되었습니다');

end;



1  COMMENTS
  • Profile
    하눌이 2001.12.11 20:34
    이렇게 써보심이...

    with detailGrid1.Datasource.Dataset do begin

    first;

    while not eof do begin

    > with qrmod do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add('update P1100 SET MOD_UNITCOST =:MOD_UNITCOST WHERE ORDNO=:ORDNO AND WRCD=:WRCD');

    > ParamByName('ORDNO').AsString := 이건몰겠는데요.

    > ParambyName('MOD_UNITCOST').asfloat := fieldbyname('항목명').asfloat

    > ParambyName('WRCD').AsString := fieldbyname(항목명).asstring;

    > ExecSql;

    > end;

    next;

    end;

    end;

    즐프하시길

    초보자 wrote:

    > 여러 레코드의 같은 필드 값을 한꺼번에 수정하고 싶습니다

    > 그런데 커서가 위치한 한곳의 값만이 변경되고 다른것은

    > 변경이 되지 않습니다

    > detailgrid의 내용이 여러줄인데

    > 한줄 한줄 변경하다가는 날샐것 같은데요..

    > 어떻게 하면 좋져

    >

    > procedure TFormP1000A.update_modcost;

    > var i : integer;

    >

    > begin

    >

    > for i :=1 to detailgrid.RowCount-1 do // 여기 이줄만 첨가하면 될줄

    > 알았는데 .. 안되나요

    > 커서가 위치한 값 한줄레코드만 바뀌네요..

    > -.-;;;

    >

    > with qrmod do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add('update P1100 SET MOD_UNITCOST =:MOD_UNITCOST WHERE ORDNO=:ORDNO AND WRCD=:WRCD');

    > ParamByName('ORDNO').AsString := MasterGrid.Cells[0,MasterGrid.Row];

    > ParambyName('MOD_UNITCOST').asfloat := strtofloat(DetailGrid.Cells[7,DetailGrid.Row]);

    > ParambyName('WRCD').AsString := DetailGrid.Cells[2,DetailGrid.Row];

    > ExecSql;

    > end;

    > showmessage('수정단가가 저장되었습니다');

    > end;

    >