我按照某人的姓名查找该人资料,在文本框中输入汉字,出现查找错误!!代码如下:
  if (edt1 .Text <>'') or (edt2.Text <>'') then
     begin
      qry2 .Close ;
      qry2 .SQL .Clear ;
      qry2.SQL .Add('select 档案号,姓名 from 人事档案 ');
      qry2.SQL.Add('and (档案号 like ''%'+edt1.Text+'%'')');
      qry2.SQL.Add('and (姓名 like ''%'+edt2.Text+'%'')');
      qry2.Open;
     end;数据库字段:档案号,nvarchar,姓名,nvarchar 类型;

解决方案 »

  1.   

    qry2.SQL.Add('and (档案号 like ''%'+edt1.Text+'%'')'); //where
      

  2.   

    if (edt1 .Text <>'') or (edt2.Text <>'') then
         begin
          qry2 .Close ;
          qry2 .SQL .Clear ;
          qry2.SQL .Add('select 档案号,姓名 from 人事档案 ');
          qry2.SQL.Add('where (档案号 like ''%'+edt1.Text+'%'')');
          qry2.SQL.Add('and (姓名 like ''%'+edt2.Text+'%'')');
          qry2.Open;
         end;
      

  3.   

    是我打错了
    if (edt1 .Text <>'') or (edt2.Text <>'') then
    begin
    qry2 .Close ;
    qry2 .SQL .Clear ;
    qry2.SQL .Add('select 档案号,姓名 from 人事档案 where ');
    qry2.SQL.Add('(档案号 like ''%'+edt1.Text+'%'')');
    qry2.SQL.Add('and (姓名 like ''%'+edt2.Text+'%'')');
    qry2.Open;
    end;
      

  4.   

    在SQL语句每行的开始和结束加个空格
    qry2.SQL .Add('select 档案号,姓名 from 人事档案 where  ');
    qry2.SQL.Add(' (档案号 like ''%'+edt1.Text+'%'') ');
    qry2.SQL.Add(' and (姓名 like ''%'+edt2.Text+'%'') ');
      

  5.   

    不加空格最后生成的SQL语句会导致解析错误