ADOQuery2.Close; 
  ADOQuery2.SQL.Clear; 
  ADOQuery2.SQL.Add('select * from po where title=:title'); 
  ADOQuery2.Parameters.ParamByName('title').Value := edit4.Text; 
  ADOQuery2.Open; 
  if ADOQuery2.RecordCount >= 1 then 
  begin     showmessage('標題已經存在,請換標題!'); 
    ADOQuery2.Close; 
  end 
  else 
  begin 
    ADOQuery2.Close; 
    ADOQuery1.append; 
    ADOQuery1.fieldByName('game').asstring := daqu.Text; 
    ADOQuery1.fieldByName('game1').asstring := xiaoqu.Text; 
    ADOQuery1.fieldByName('prices').asstring := edit5.Text; 
    ADOQuery1.fieldByName('memo1').asstring := memo1.Text; 
    ADOQuery1.fieldByName('credit').asstring := SpinEdit1.Text; 
    ADOQuery1.fieldByName('kind').asstring := combobox1.Text; 
    ADOQuery1.fieldByName('TITLE').asstring := edit4.Text; 
    if (checkbox1.Checked = true) then 
    begin 
      ADOQuery1.fieldByName('bool').asstring := '★'; 
    end 
    else 
    begin 
      ADOQuery1.fieldByName('bool').asstring := '☆'; 
    end; 
    ADOQuery1.post; 
end; 
为什么这代码扫执行了,不但没有加入到数据库中,还把daqu.Text;xiaoqu.Text;edit5.Text;memo1.Text;给清空了,我都没写清空这个控件的代码啊!

解决方案 »

  1.   


     if ADOQuery2.RecordCount >= 1 then 
      begin     showmessage('標題已經存在,請換標題!'); 
        ADOQuery2.Close; 
      end 
      else 
      begin 
        ADOQuery2.Close;
        ADOQuery2.sql.text:='................'; 
        ADOQuery2.open;

        ADOQuery1.append; 
        ADOQuery1.fieldByName('game').asstring := daqu.Text; 
        ADOQuery1.fieldByName('game1').asstring := xiaoqu.Text; 
        ADOQuery1.fieldByName('prices').asstring := edit5.Text; 
        ADOQuery1.fieldByName('memo1').asstring := memo1.Text; 
        ADOQuery1.fieldByName('credit').asstring := SpinEdit1.Text; 
        ADOQuery1.fieldByName('kind').asstring := combobox1.Text; 
        ADOQuery1.fieldByName('TITLE').asstring := edit4.Text; 
      

  2.   


    if ADOQuery2.RecordCount >= 1 then 
      begin     showmessage('標題已經存在,請換標題!'); 
        ADOQuery2.Close; 
      end 
      else 
      begin 
        ADOQuery2.Close;
        ADOQuery2.sql.text:='................'; 
        ADOQuery2.open;
        ADOQuery1.append; 
        ADOQuery1.fieldByName('game').asstring := daqu.Text; 
        ADOQuery1.fieldByName('game1').asstring := xiaoqu.Text; 
        ADOQuery1.fieldByName('prices').asstring := edit5.Text; 
        ADOQuery1.fieldByName('memo1').asstring := memo1.Text; 
        ADOQuery1.fieldByName('credit').asstring := SpinEdit1.Text; 
        ADOQuery1.fieldByName('kind').asstring := combobox1.Text; 
        ADOQuery1.fieldByName('TITLE').asstring := edit4.Text; 
      

  3.   

    跟踪下,要不就把你出错的地方从写个程序看看对不对.用SQL语句看看.
      

  4.   

    你提及的问题应该和这段没有多大关系,应该是其它地方清空了你的一群text信息
    遇到问题首先想到的应该是去调试,而不是遇到问题就发问,实在跟不出来让大家一起帮你跟
      

  5.   


    是其他地方的问题,不是这段程序,而且就这个代码片段来看,ADOQuery1上面应该还有一段没有交待,看不出啥问题
      

  6.   

    建议你用  with .... end 块另外,你好象是想在插入新记录到表中,直接写插入语句就是,只要表的关键字段设置了唯一索引,若数据重复也是可以判断得出来的
    如with AdoQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert into 表(字段...) values (参数)');
        Parameters[0].Value:=给出参数值;
        ...
        try
          ExecSQL;
        except
          给出出错时的提示
        end;
      end; //结束with块
      

  7.   

    这哪有清空的代码?
    跟踪看一下,哪里做了清空处理。至于Sql语句你单步执行看是不是走了你想要的流程。