我有一个edit,一个button,将edit输入的内容在sql中进行查找,button按下后在后面显示出来,但是我有一个问题,如果在sql查询不到就很麻烦,像报错一样的跳一个对话框出来,我想如果没有搜索到,那跳一个对话框出来提示没有合适的查询,请问怎么弄?是自己添加一个form还是用showmessage?

解决方案 »

  1.   

    都行,showmessage可能做起来更快
      

  2.   

    提示用showmessage最好.你可以把查询放到TRY中
      

  3.   

    if Qry.RecordCount = 0 then
      ShowMessage('没有找到记录');
      

  4.   

    如果要它不报错:

    try
    ...
    except
    ...
    finally
      

  5.   

    这个问题在于你想怎么做,showmessage就能弹出个框提示,如果你想附加更多的信息,就自己做一个窗体,显示一个窗体也不麻烦
      

  6.   


    try
     if qy.IsEmpty then showmessage('没有找到记录!');
    except
       on E:Exception do
      ShowMessage(E.Message);
    end;
      

  7.   

    begin
    if cus_name.Text=''
    then showmessage('请输入要查询的客户姓名')
    else
    with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.Add('select * from 预订客户查询表 where 客户姓名=:name');
    Parameters.ParamByName('name').Value:= Trim(cus_name.text);
    open;
    try
    if  adoquery1.RecordCount = 0 then
      ShowMessage('没有找到记录');
    except
     while not eof do
     begin
            cus_time.Text:=adoquery1.Fieldbyname('入住时间').AsString;
            cus_rnum.Text:=adoquery1.Fieldbyname('房间号').AsString;
              Next;
     end;
     showmessage('查询完成');
            end;
    end;
    end;这个样子不对啊。大家帮我看看哪错了,这样输入存在的数据就没反应了
      

  8.   

    http://aaa[img=http://aaaa][/img]
      

  9.   


    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from 表名 where 条件=');
    adoquery1.open;if adoquery1.recordcount=0 then
       showmessage('没有合适的纪录);
      

  10.   


    sql.Add('select * from 预订客户查询表 where 客户姓名=:name');
    客户姓名=:name?