begin
        s_id:=AdoQuery1.FieldByName('s_id').value;
        AdoQuery1.Close;
        AdoQuery1.SQL.Clear;
        AdoQuery1.SQL.Add('select * from s_sharp where s_id="'+s_id+'"');
        AdoQuery1.Open;
        {
         *判断在形态信息表中是否已经存在相同信息。
        }
        if not AdoQuery1.Eof then
          begin
            ShowMessage('此人信息已经存在,请重新输入!');
            AdoQuery1.Close;
          end
        else
          begin
            AdoQuery1.Close;
            AdoQuery1.SQL.Clear;
            AdoQuery1.SQL.add('insert into s_sharp(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
            AdoQuery1.SQL.add(' values(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
            AdoQuery1.Parameters.ParamByName('s_id').Value:=s_id;
            AdoQuery1.Parameters.ParamByName('s_height').Value:=s_height.Text;
            AdoQuery1.Parameters.ParamByName('s_weight').Value:=s_weight.Text;
            AdoQuery1.Parameters.ParamByName('s_upper_arm').Value:=s_upper_arm.Text;
            AdoQuery1.Parameters.ParamByName('s_lower_limbs').Value:=s_lower_limbs.Text;
            AdoQuery1.Parameters.ParamByName('s_second_height').Value:=s_second_height.Text;
            AdoQuery1.Parameters.ParamByName('s_xingong').Value:=s_xingong.Text;
            AdoQuery1.Parameters.ParamByName('s_vital_capacity').Value:=s_vital_capacity.Text;            AdoQuery1.ExecSQL;
          end;
     end;

解决方案 »

  1.   

    这里可以改一下:
    if not AdoQuery1.Eof then//改为:if not adoquery1.IsEmpty then
              begin
                ShowMessage('此人信息已经存在,请重新输入!');
                AdoQuery1.Close;
              end
            else
      

  2.   

    AdoQuery1.SQL.add(' values(:s_id,:s_height,:s_weight,:s_upper_arm,:s_lower_limbs,:s_second_height,:s_xingong,:s_vital_capacity)');
      

  3.   

    adoquery1.IsEmpty是判断查询结果是否为空
      

  4.   

    的要看一个软件的整体框架
    应分三层,数据层,逻辑层,表示层begin
            s_id:=AdoQuery1.FieldByName('s_id').value;
            AdoQuery1.Close;
            AdoQuery1.SQL.Clear;
            AdoQuery1.SQL.Add('select * from s_sharp where s_id="'+s_id+'"');
            try
              AdoQuery1.Open;
            except
              ShoeMessage(' connection error !');
              exit;
            end;
            {
             *判断在形态信息表中是否已经存在相同信息。
            }
            if not AdoQuery1.Eof then
            begin
                ShowMessage('此人信息已经存在,请重新输入!');
              AdoQuery1.Close;
            end
            else
              begin
                with ADOQuer1 do
                begin
                  Close;
                  SQL.Clear;
                  SQL.add('insert into s_sharp(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
                  SQL.add(' values(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
                  Parameters.ParamByName('s_id').Value:=s_id;
                  Parameters.ParamByName('s_height').Value:=s_height.Text;
                  Parameters.ParamByName('s_weight').Value:=s_weight.Text;
                  Parameters.ParamByName('s_upper_arm').Value:=s_upper_arm.Text;
                  Parameters.ParamByName('s_lower_limbs').Value:=s_lower_limbs.Text;
                  Parameters.ParamByName('s_second_height').Value:=s_second_height.Text;
                  Parameters.ParamByName('s_xingong').Value:=s_xingong.Text;
                  Parameters.ParamByName('s_vital_capacity').Value:=s_vital_capacity.Text;              ExecSQL;
                end;
              end;
         end;
      

  5.   

    to mengxianbao1521(简单就是美丽-代码优化)
    我这个名字已经在CSDN用了几年了哈:)
    (大家都是朋友嘛)
      

  6.   

    定义过程EditClear;
     for i:=0 to self.ComponentCount-1 do
        begin
          if self.Components[i] is tedit then
             begin
               ((self.Components[i]) as tedit).text:=''; 
             end;
        end;