以下代码功能:
实现 从spsb_ck 表中搜寻一条ckdh为 combobox2.text的记录1
然后在spsb_ck中追加一行 将 记录1的内容复制到增加的行中 并对增加的行某些字段进行编辑 
出现的问题:记录并不为空 可是数据表中并没有出现增加的行 
ADOth.Close;
  ADOth.SQL.Text:='select * from SPSB_CK where ( spjp = '''+trim(edit6.Text)+''') and (ckdh='''+trim(ComboBox2.Text)+''')'+
          ' and (ph='''+trim(edit9.Text)+''')'+'and (cjjp='''+trim(edit2.Text)+''')';
  ADOth.Open;
  //在出库表中追加一行并编辑
  ADOjth.Close;
  ADOjth.SQL.Text:='select * from SPSB_CK ';
  adojth.Open;
  adojth.Append;
  for it:=0 to adoth.fieldcount-1 do
  adojth.FieldByName(adoth.Fields[it].FieldName).Assign(adoth.Fields[it]);
  adojth.FieldByName('ckdh').AsString:=trim(edit1.Text);
  ADOjth.FieldByName('th').AsBOOLEAN:=TRUE;
 ADOjth.FieldByName('thyy').AsString:=trim(ss.Text);
  adojth.fieldbyname('csl').asinteger:=0-strtoint(Edit16.text);
  adojth.fieldbyname('crq').AsDateTime:=now;
  adojth.FieldByName('cje').Asstring:='-'+trim(edit17.Text);
  adojth.FieldByName('jsrdm').AsString:=edit4.Text;
  adojth.FieldByName('jsrmc').AsString:=edit5.Text;
  adojth.Post;
  //bianji
  adoth.Edit;
  ADoth.FieldByName('th').AsBOOLEAN:=TRUE;
  adoth.Post;

解决方案 »

  1.   

    ADOth.Close; 
      ADOth.SQL.Text:='select * from SPSB_CK where ( spjp = '''+trim(edit6.Text)+''') and (ckdh='''+trim(ComboBox2.Text)+''')'+ 
              ' and (ph='''+trim(edit9.Text)+''')'+'and (cjjp='''+trim(edit2.Text)+''')'; 
      ADOth.Open; 
      //在出库表中追加一行并编辑 
      ADOjth.Close; 
      ADOjth.SQL.Text:='select * from SPSB_CK '; 
      adojth.Open; ---
    这一段逻辑是有问题的前面三句是无用的
      

  2.   

    adojth.Append; 
      for it:=0 to adoth.fieldcount-1 do这之间加一名判断
    if ADOth.RecordCount < 1 then exit;ADOth.First; //主要是这句