我几年前学过DELPHI,最近因为有需要,所以重学!
我用EDIT获取DBGRID的数据,用botton添加EDIT中的数据,表里有4个字段,其中SS是主键,自动递增的!之前在添加数据时有重复的错误出现,所以加了段判断是否的重复的SS,现在出现strtoint没有定义!而且就算没有这个错误发生,我觉得这样的添加记录方法也不太好,因为就算提示有重复的发生,只是提示,还是要继续判断,有没有好的办法能避免出现重复的错误!请指教!谢谢!
dm1.qry.Close;
dm1.qry.SQL.Clear;
 dm1.qry.sql.add('select * from SP where SS=strtoint(Edit4.Text)');
  dm1.qry.open;
  if not eof then
  showmessage('编号已存在')
  else
  begin
  dm1.qry.SQL.Add('insert into sp(AA,BB,CC) values('''+ trim(edit1.Text)+''','''+ trim(edit2.Text)+''','''+trim(edit3.Text)+''')');dm1.qry.ExecSQL;
DM1.qry.SQL.Clear;
 dm1.qry.SQL.Add('select * from sp ');
 dm1.qry.Active:=True;
end;

解决方案 »

  1.   

    如果SS字段是自动递增型的,那就不用你去操心了。直接:
    dm1.qry.SQL.Add('insert   into   sp(AA,BB,CC)   values('''+   trim(edit1.Text)+''','''+   trim(edit2.Text)+''','''+trim(edit3.Text)+''')'); 
    就OK了。
      

  2.   

    谢谢楼上的回复,如果只是那样就可以了我就不会问了!现在的问题是,我点一次BOTTON添加一条记录后,接着不改EDIT里的内容再点一次BOTTON就会报错“有复重的索引记录..."所以我就想了段判断是否的重复的SS!最后那段“
    DM1.qry.SQL.Clear; 
      dm1.qry.SQL.Add('select   *   from   sp   '); 
      dm1.qry.Active:=True;

    是因为添加记录后DBGRID不显示内容,所以加上的刷新一下!