简单的按系别查询,为什么不能实现?请指教。
procedure TForm5.Button2Click(Sender: TObject);
begin
  try
if trim(edit2.Text)<>'' then
begin
query1.Close;
query1.SQL.Clear;
query1.sql.Add('select * from table1 where ky_xb=:A order by ky_name');
query1.ParamByName('A').AsString:=edit2.Text;
query1.Prepare;
query1.Open;
query1.Refresh;
  end;
  except
  showmessage('查询条件错误,请重新输入!');end;
end;

解决方案 »

  1.   

    query1.ParamByName('A').AsString:=edit2.Text;
    --改为
    Query1.Params.ParamByName('A').AsString := trim(edit2.Text);
      

  2.   

    query1.Open;
    query1.Refresh;
    showmessage(inttostr(query1.recordcount));//////////////看看
      

  3.   

    我用dbgrid显示,
    谢谢大家,我试试你们的方法,
      

  4.   

    我的showmessage(inttostr(query1.recordcount));
    结果是1!这是怎么回事?我连接的表是有很多数据的
      

  5.   

    query1.ParamByName('A').AsString:=edit2.Text;
    废话少说,
    你把edit2.text的内容写出来
    估计就明白是什么问题了.
      

  6.   

    showmessage(eidt2.text);这个结果是正确的,就是我输入的数据呀
      

  7.   

    不是楼上说的,
    在dbgrid能显示所有记录
      

  8.   

    系别查询成功,代码如下:
    procedure TForm5.Button2Click(Sender: TObject);
    begin
      try
    if trim(edit2.Text)<>'' then
    begin
    query1.Close;
    query1.SQL.Clear;
    query1.sql.Add('select * from table1 where ky_xb=:A order by ky_name');
    query1.Params.parambyname('A').AsString:=trim(edit2.Text);
    query1.Prepare;
    query1.Open;
    query1.Refresh;
    //showmessage(edit2.Text);
    //showmessage(inttostr(query1.recordcount));  end;
      except
      showmessage('&sup2;é&Ntilde;&macr;&Igrave;&otilde;&frac14;&thorn;&acute;í&Icirc;ó&pound;&not;&Ccedil;&euml;&Ouml;&Oslash;&ETH;&Acirc;&Ecirc;&auml;&Egrave;&euml;&pound;&iexcl;');end;
    end;
    但我把姓名查询也改成sql就出错了,代码如下:
    procedure TForm5.Button1Click(Sender: TObject);begin
    try
    if trim(edit1.Text)<>'' then
    begin
    query1.Close;
    query1.SQL.Clear;
    query1.sql.Add('select * from table1 where ky_name=:A order by ky_sex');
    query1.Params.parambyname('A').AsString:=trim(edit1.Text);
    query1.Prepare;
    query1.Open;
    query1.Refresh;
    //showmessage(edit2.Text);
    //showmessage(inttostr(query1.recordcount));  end;
      except
      showmessage('&sup2;é&Ntilde;&macr;&Igrave;&otilde;&frac14;&thorn;&acute;í&Icirc;ó&pound;&not;&Ccedil;&euml;&Ouml;&Oslash;&ETH;&Acirc;&Ecirc;&auml;&Egrave;&euml;&pound;&iexcl;');end;
    end;
      

  9.   

    都找不出错误在哪儿,showmessage是提示错误信息,是几个汉字,不用看的。
      

  10.   

    你到查询分析器中查询一下  姓名查询的sql,
    可能是你数据库中ky_name字段中的值含空格
      

  11.   

    从代码看好象看不出问题呀,你说:“showmessage是提示错误信息,是几个汉字”,什么汉字?
      

  12.   

    你的记录是导入的吧名字的前面有空格,dbgrid当然能显示
      

  13.   

    我把姓名查询写的用findkey现在好了,谢谢大家的支持,结帐!