我是想在插入数据前,先把数据库查询一遍 搜索有没有 和传进来的参数一样的值
如果一样就不插入跳过 如果不一样就插入
但是在测试的过程中遇到一些问题  出现这个提示  如果按照我这个代码 能实现防止重复输入值吗?
 Tmp := StrTodar(Pass,16);   //将pass转换成其他数 并且赋值到tmp
      MainForm.ADOQuery3.close;
      MainForm.adoquery3.sql.clear;
      MainForm.adoquery3.sql.add('select [dar] from TEST where dar='''+pass+'''');  //查询dar中是否有参数pass
      mainform.adoquery3.Open;
      check:= trim( mainform.adoquery3.FieldByName('dar').AsString); //将查询结果赋给check
 if (StrToInt(check)=0)  then  //如果check等于0 那么插入
 begin
    instead(dar,tmp);
 end;

解决方案 »

  1.   

    你这个如果没有查到,返回是没有记录的,所以可以用eof函数。
    if eof then
      instead(dar,tmp); //你这个是一个自定义的过程吧?
      

  2.   

     Tmp := StrTodar(Pass,16);   //将pass转换成其他数 并且赋值到tmp
          MainForm.ADOQuery3.close;
          MainForm.adoquery3.sql.clear;
          MainForm.adoquery3.sql.add('select [dar] from TEST where dar='''+pass+'''');  //查询dar中是否有参数pass
          mainform.adoquery3.Open;
          if mainform.adoquery3.recordcount = 0 then
            instead(dar,tmp);
     end;