With ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * From Bmemberlist where bmlname=:a');
    Parameters.ParamByName('a').Value := Trim(Edit1.Text);
    Open;
  end;
  if ADOQuery1.RecordCount > 0 then
  begin
    Application.MessageBox('该会员已经存在。','提示',0+64);
    Exit;
  end;

解决方案 »

  1.   

    对,另外最好能给bmlname加上一个不能重复的索引
      

  2.   

    一般使用isEmpty 这样速度要快一些
      

  3.   

    如果Edit1.text的内容是中文, 请加一句
    Parameters.ParamByName('a').Size := Length(Trim(Edit1.Text));
    Parameters.ParamByName('a').Value := Trim(Edit1.Text);
    否则查不出来的.
      

  4.   

    最好用
    'Select count(*) From Bmemberlist where bmlname=:a'
    因为如果满足条件的记录很多,或记录的内容很大(image之类),会很影响速度
    用count只会返回一条记录,只有一个字段,就是符合条件的记录数
      

  5.   

    if exists(select * From Bmemberlist where bmlname=:a) select 'T' else select 'F'这样只要判断 返回值是 T 还是 F 就可以了