dbgrid循环以更新无效的数据

时间:2018-01-10 08:11:13

标签: oracle11g delphi-7

所以我有一个有这个信息的DBGRID:

enter image description here

我想编辑DBGRID中的值。我提供了一个代码按钮:

    var ptlok, idp, tgl, after, kode, jlh, sql, sqla:string;
begin
  while not dbgrid2.DataSource.DataSet.Eof do 
  begin
    ptlok:=dbgrid2.DataSource.DataSet.Fields[0].AsString;
    tgl:=dbgrid2.DataSource.DataSet.Fields[1].AsString;
    after  := stringreplace(tgl, '/', '-', [rfReplaceAll, rfIgnoreCase]);
    kode:=dbgrid2.DataSource.DataSet.Fields[2].AsString;
    jlh:=dbgrid2.DataSource.DataSet.Fields[3].AsString;
    idp:=dbgrid2.DataSource.DataSet.Fields[4].AsString;
    sql:='update kasir_opname_detail set kode='+quotedstr(kode)+', 
      jumlah='+quotedstr(jlh)+' where ptlokasi='+quotedstr(ptlok)+' and 
      tanggal=to_date('+quotedstr(after)+','+quotedstr('dd-mm-yyyy')+')'+' and 
      idpay='+quotedstr(idp)+'';
    sqla:=sql;

    zquery13.close;
    zquery13.sql.clear;
    zquery13.sql.add(sqla);
    zquery13.execsql;
    dbgrid2.DataSource.dataset.Next;
    showmessage(sqla);
    //end;
    label19.Caption:=sqla;
  end;
  showmessage('Data Berhasil Disimpan!');
end;

但是数据未按预期保存。它只会读取DBGRID的最后一行,然后使用DBGRID最后一行的值更新所有数据。 代码有问题吗? (prev适用于不同的dbgrid) 我使用delphi 7和oracle作为数据库。提前谢谢。

0 个答案:

没有答案