我从表table1中取出数据到stringgrid显示,我在stringgrid中进行修改和增加记录,删除记录后怎样把新的数据和记录存回表中?

解决方案 »

  1.   

    这个表是这样的:
        有进货编号,药品代码,药品名称,数量,单价,金额这几个字段。
     我排一个表如下
        进货编号  药品代码  药品名称  数量   单价  金额
         001       gml      感冒灵    10    1.5   15
         001       lsms     螺旋酶素   20    2.5   50
         001       qm       曲美       30    3     90
         002       gml      感冒灵     30    1.5    45
         002       amxl     阿膜西林    10    3      30在这个表里,先根据进货编号取出数据到stringgrid显示,在stringgrid中进行处理,由于在stringgrid中涉及到更新,增加,删除等操作.请问朋友该如何把处理后的数据存回表中。
      

  2.   

    方法一:以stringgrid1的每列做循环,比较表中的记录与stringgrid1中的是否一至,不一至则修改记录,或增加记录。
    方法二:删除表中的记录,从stringgrid中重新添加记录。
      

  3.   

    用方法二的话,有个问题就是先删除表中的记录,然后从stringgrid中重新添加记录,实际上把原来在表中的记录(虽然没有对它修改,但是还需要的记录)删除了。而且在表中添加的记录只有stringgrid的最后一行。
    从stringgrid中重新添加记录,我用的方法:
       var 
      i,j:integer;
    begin
    table1.append;
      for i := 0 to StringGrid1.RowCount - 1 do
        for j := 0 to StringGrid1.ColCount - 1 do
            table1.fields[j].assting:= StringGrid1.Cells[j,i] ;
    table1.post;
    end;
      

  4.   

    好象只能一个一个录入了.没有别的办法,技巧是用点循环.
    但stringGrid的读取速度很快啊! 我愿意用.
      

  5.   

    use TQuery :
    StartTransaction
    1.delete from table
    2.insert into table(field1,field2...)values (:param1,:param2...)
    commit
    or rollback