数据库表格中设置了一字段为唯一值。往这一数据库插入记录,在此字段上不允许出现重复,在试图插入记录时,如果出错,怎么判断是不是因为唯一性的原因?

解决方案 »

  1.   

    在beforePost之前检查是否有重复记录!
      

  2.   

    不知道你用的是什么数据库,SQL server有个@@ERROR变量可以查,其他的就不清楚了,应该都有类型的东西,就是每执行一个sql都会返回一个结果代码。
    sql server插入重复的错误号是2601
      

  3.   

    var errid : integer;
    with adoquery1 do
    begin
      .......................
      sql.add(select @@Error as errid);
      Open;
      errid := fieldByName('errid').asinteger;
    end;
      

  4.   

    又来晚了,可惜我也只知道MS——SQL的,不知道O的是不是也是这个
      

  5.   

    To Popmailzjw:不晚不晚,说说你的方法吧。谢谢了!
      

  6.   

    在beforePost之前检查是否有重复记录!
      

  7.   

    if Querysyh.Locate('syh',syh,[]) then
        begin
          MsgDlgEx('索引号已存在,请重新输入!',mtInformation,[mbOk],0);
          Exit;
        end;
      

  8.   

    to lyguo(初学者):   方法不错,但在一个很大的数据库中不值得提倡。
       
      

  9.   

    try
    你的insert语句
    except on E:exception do
    begin
    showmessage('错误原因:'+E.message);
    end;
    end;
      

  10.   

    可以直接在保存的sql语句中处理
    declare @id bigint
    select @id=id from table where id=@id
    if @id is not null
       set @id=@id+1insert table(id)values(@id)有点浪费系统开销
      

  11.   

    where id=@id 改成 where id=:id 是外参