求助:为何用moveby作数据插入的时候,指针不能自动向下跳?
程序段如下:if copy(s.Strings[i+j+10],41,1) = '-' then
                      Table2.MoveBy(-l);  //仅仅这一行有数据插入(更新),其下各行均不会作插入问题出在哪?
                      for k := 0 to j do
                      //with Table2 do
                      begin
                      //Table2.MoveBy(-l);
                      //Table2.Open;
                      Table2.Edit;
                      table2.Fields[9].AsString := copy(s.Strings[i+11+j],41,20);
                      table2.Fields[10].AsString := copy(s.Strings[i+12+j],41,30);
                      //Table2.Next;
   
                      Table2.Post;
                      Table2.Close;
                      end;希望各位大侠看看,谢谢!

解决方案 »

  1.   

    人民币   交易时间          交易金额          交易地点
    ========================================================
    CNY 050106 30,000.00 某某商场      //moveby所指向的行(可以插入)
    CNY 050106          30,000.00               //下一行(不能插入)
    CNY 050111 30,386.00 我原本取的数据只有'人民币'、'交易时间'和'交易金额',但是'交易地点'字段为空的
    当取到最后的时候我想跳回到第一个记录开始,依次添上'交易地点',该如何实现?
    为何我的程序只能将moveby所指向的行(即第一行)添上记录,其下的所有行都为空?
      

  2.   

    人民币  交易时间    交易金额         交易地点
    ===============================================
    CNY 050106   30,000.00 某某商场      //moveby所指向的行(可以插入)
    CNY 050106   30,000.00      //下一行(不能插入)
    CNY 050111   30,386.00 我原本取的数据只有'人民币'、'交易时间'和'交易金额',但是'交易地点'字段为空的
    当取到最后的时候我想跳回到第一个记录开始,依次添上'交易地点',该如何实现?
    为何我的程序只能将moveby所指向的行(即第一行)添上记录,其下的所有行都为空?
      

  3.   

    with table2 do 
      begin
        first;
        while not eof do 
          begin
            Edit;
            Fields[9].AsString := ...;
            Fields[10].AsString := ...;
            post;
            next;
          end;
      end;
      

  4.   

    merkey2002(小样的)
    with table2 do 
      begin
        first;
        while not eof do 
          begin
            Edit;
            Fields[9].AsString := ...;
            Fields[10].AsString := ...;
            post;
            next;
          end;
      end;
    =================================================
    就是这样不行啊,见我的程序。我就用了,但因为会提示‘不在编辑、或插入模式’而出错
    被我注释了
    只要加上table2.next就一定出错,所以我很费解才提问的
      

  5.   

    呵呵,我也遇到过的,你把next去掉就可以了!
      

  6.   

    回复人: saulia(水晶娃娃)
    呵呵,我也遇到过的,你把next去掉就可以了!
    --------------------------------------------------
    问题是我想达到从moveby指针开始能修改到所有记录啊
      

  7.   

    请教大家一个问题:当用了moveby后,是不是数据库的指针就再也不能改变了????
    好困惑啊!!!
      

  8.   

    哈哈,终于被我自己解决了!!!!
    虽然今天熬夜到现在,但解决了问题就是高兴!!!!
    原来就是一个小的不能小的问题,要先post再移指针的.....
    回想一下也挺郁闷,挺感慨的
    if copy(s.Strings[i+j+10],41,1) = '-' then
                          Table2.MoveBy(-l);  //
                          for k := 0 to j do
                          //with Table2 do
                          begin
                          //Table2.MoveBy(-l);
                          //Table2.Open;
                          Table2.Edit;
                          table2.Fields[9].AsString := copy(s.Strings[i+11+j],41,20);
                          table2.Fields[10].AsString := copy(s.Strings[i+12+j],41,30);                      Table2.Post;//先提交(即先作插入操作)
                          Table2.Next;//再将指针往下跳(郁闷啊)
                             Table2.Close;
                          end;
    高兴放分,明早结帖,谢谢各位!