var a1,a2,a3,StrSQL:string;
  I: Integer;
begin
 if(Application.MessageBox('系统将登记该订单为有效,并修改库存,是否确认?','系统提示',MB_YESNO+MB_ICONQUESTION)<>IDNO) then
  begin
   for I := 0 to DBGrid1.SelectedRows.Count - 1 do
    begin
    DBGrid1.DataSource.DataSet.Book:= DBGrid1.SelectedRows.items[I];
    with whdata.vsh_cgrk2 do
      begin
        first;
        while not eof do
          begin
            a1:=fieldbyname('商品编码').asstring;
            a2:=fieldbyname('数量').asstring;
            a3:=fieldbyname('进价').asstring;
            whdata.kc2.Close;
            whdata.kc2.SQL.Clear;
            whdata.kc2.SQL.Add('select * from kc_kc2 where prod_no='''+a1+''' and whouse_no='''+whdata.vsh_cgrk1.fieldbyname('whouse_no').AsString+'''');
            whdata.kc2.ExecSQL;
            whdata.kc2.Active:=true;
            StrSQL:=StrSQL+'update jh_cgrk1 set audi='''+wh_logon.user_name.Text+''',shrq='''+datetostr(DATE)+''' where no='''+whdata.vsh_cgrk1.fieldbyname('采购订单编号').AsString+'''';
           if not whdata.kc2.Eof then
            StrSQL:=StrSQL+'update kc_kc2 set amt=amt+'''+a2+''' where prod_no='''+a1+''' and WHOUSE='''+whdata.vsh_cgrk1.fieldbyname('库房').AsString+''''
           else
             StrSQL:=StrSQL+'insert into KC_KC2(prod_no,whouse_no,amt,whouse,avg_price) values('''+a1+''','''+whdata.vsh_cgrk1.fieldbyname('whouse_no').AsString+''','+a2+','''+whdata.vsh_cgrk1.fieldbyname('库房').AsString+''','+a3+')';
       next;
     end;
    end; 
  end;
 end;
  whdata.sh_kc2.Close;
  whdata.sh_kc2.SQL.Clear;
  whdata.sh_kc2.SQL.Add(StrSQL);
  whdata.sh_kc2.ExecSQL;
  formcreate(nil);
 end;

解决方案 »

  1.   

    to hameizi:
    我的数据源连接是正确的,因为在没有用Ctrl连选之前,一直是好用的。现在的问题是我能按照我选择的插入到表里,但插入之后,就提示'书签无效'这样的错误。不知该怎样解决!谢谢你了!
      

  2.   

    DBGrid1.DataSource.DataSet是指哪个数据表,是否定义了Filter致使数据在改变后被过滤掉了?
      

  3.   

    to Snakeguo(枫&楠):
    DBGrid1.DataSource.DataSet指的是vsh_cgrk1这个表,这是个主表,vsh_cgrk2是子表。我没有定义Filter,我按Ctrl之后,能把想要插入的数据插入到表里,只是在插入之后,出现了'书签无效'这个提示错误。谢谢你!
      

  4.   

    whdata.kc2.ExecSQL;
    whdata.kc2.Active:=true;合成一句
    whdata.kc2.open;试试
      

  5.   

    to  jiaclassmate(jia):谢谢你!
    还是不行,好像不是这儿的毛病。
      

  6.   

    to Snakeguo(枫&楠):
    出错的位置停留在工程文件里,根本就看不出来哪出错。反正错误是'书签无效',不知该怎么办?愁死我了!
      

  7.   

    to blazingfire(烈焰):
    那我应该怎么办呢?怎么样不让书签改变呢?