procedure Tmainfrm.FormShow(Sender: TObject);
var
  s:string;
begin
  s:=dlfrm.Edit1.Text;
  with dm.dengluADOQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 登陆 where 用户名like'''+s+'''');
    open;
    if recordcount>0 then
      begin
        if fields[2].AsString='标准用户' then
          mainfrm.N1.Enabled:=false
          else if fields[2].AsString='一般用户' then
            begin
              mainfrm.N1.Enabled:=false;
              mainfrm.N11.Enabled:=false;
              mainfrm.N13.Enabled:=false;
            end;
      end
      else
        showmessage('记录为空');
  end;
end;
这是程序中的一块,执行之后系统出现异常,为什么会这样,怎么解决,问题就是出在这段程序中,谢谢

解决方案 »

  1.   

    sql.Add('select * from 登陆 where 用户名 LIKE ''%'+s+'%''');
      

  2.   

    sql.Add('select * from 登陆 where 用户名  like  '''+s+'''');
      

  3.   

    sql 语句错误那是明显的,呵呵
      

  4.   

    好好检查你的SQL语句,特别是该加空格的地方没加
      

  5.   

    用户名like-->用户名 LIKE
      

  6.   

    楼上说得对,用户名和Like之间没有空格,也没写%
    zzlazio(sritsb) 的写法是正确的
      

  7.   

    'select * from 登陆 where 用户名 LIKE ''%' + s + '%'''
      

  8.   

    用户与Like之间要空格!不知我说的对不对,可以试一下。共同学习^_^