我用delphi设计一个通讯录,数据库是sql server
已经建好了表tongxunlu,现在想向表中添加数据
  with form1.qry1 do
  begin
    close;
    sql.clear;
    sql.text:='insert into tongxunlu (编号,姓名,性别,生日,学历,地址)'+
    'values('''+trim(edt1.Text)+''','''+trim(edt2.Text)+''','''+trim(cbb1.Text)+''','''+trim(edt3.Text)+''','''+trim(edt4.Text)+''','''+trim(edt5.Text)+''') ';
    execsql;
  end; 
以上都是正确的。
但我想添加数据之前先判断‘编号’(已经是主键了)是否存在。如果存在则showmessager('已经存在,重新输入')
请问怎么写delphi程序?

解决方案 »

  1.   

    先查询 编号 是否存在 select 1 from tongxunlu where 编号=编号 如果返回的记录数大于1就表示已经存在了
      

  2.   

    with form1.qry1 do
      begin
      close;
      sql.clear;
      sql.text:='select * from tongxunlu where 编号='''+trim(edt1.Text)+'''';
      Open;
      if 记录数>0 then
      begin
        提示编号已经存在,重新录入!
        exit;
      end;
      end;  
      

  3.   

    关键是我(菜鸟)不知道怎么获得SQL语句的返回记录。
    我在想用下面语句:
    sql.clear;
    sql.text:='select * from tongxunlu where 编号='''+trim(edt1.Text)+'''';
    execsql;
    但返回记录在哪里?
    是不是要用别的方法?
    谢谢大家帮助!