插入新数据insert 问题
(用一条sql语句完成)在同一张表中插入一条数据,当表中已存在相同记录时放弃添加,否着插入新数据
谢谢各位!!

解决方案 »

  1.   

    一条sql语句不行,要用存储过程或者触发器.
      

  2.   

    插入之前先select一下,如果recordcount>0就不插入
      

  3.   

    你好我刚接触delphi不太懂你能否帮我写一下代码谢谢!!
      

  4.   

    with clientdm.ADOQuery do
         begin
         close;
         sql.Clear;
         sql.Add('select * from rm_state where state_name=:state_name');
         Parameters.ParamByName('state_name').Value:=Trim(statenameEdit.Text);
         Prepared:=true;
         Open;
         if RecordCount>0 then
           begin
            application.MessageBox(Pchar('<客房状态描述: '+stateNameEdit.text+' >已存在,请选择一个其它的名称!'),'错误',mb_iconinformation+mb_ok);
            statenameEdit.Text:='';
            statenameEdit.SetFocus;
            abort;
           end;
         end ;
    try
         with clientdm.ADOQuery do
         begin
         close;
         sql.Clear;
         sql.Add('insert into rm_state values(:state_id,:state_name)');
         Parameters.ParamByName('state_id').Value:=Trim(stateidEdit.Text);
         Parameters.ParamByName('state_name').Value:=Trim(statenameEdit.Text);
         Prepared:=true;
         ExecSQL;
         end
       except
        application.MessageBox('数据添加出错!','警告',mb_iconerror+mb_ok);
        clientdm.ADOQuery.CancelUpdates;
        abort;
       end;
    ==================================
    看是否对你有帮助努力学习中