在以前的帖子中我搜到数据查询的帖子如下:
  var str:string;
begin
str:='select * from mtsc';
if edit1.text <>'' then
begin
  str:=str+'  name='+Quotedstr(edit1.text)+'  AND  ';
end;
 if edit2.text <>'' then
begin
  str :=str+'  format='+Quotedstr(edit2.text)+'  AND  ';
end;
 if combobox1.text <> '' then
begin
  str :=str+'  kind='+Quotedstr(combobox1.Text)+'  AND  ';
end;
str:=str+' 1=1';  // 这里是防止你没有选择任意一个
with SQLQuery1 do
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.add(str);
SQLQuery1.Open;
end;
但是我不知道怎样才能把查询的结果显示到dbgrid控件上,谢谢各位了!

解决方案 »

  1.   

    不是吧
    不会显示?
    ADOQuery.Active := True;就ok了
      

  2.   

    需要用到DateSource控件,你的DBGrid与DateSource相连,DateSource与SQLQuery控件相连
    加上SQLConnection连接数据库就行了。
    或者用ADO来连数据库:
    http://community.csdn.net/Expert/topic/4638/4638613.xml?temp=9.716433E-02
      

  3.   

    查询结束后先ADOQuery.Active := false 再ADOQuery.Active := true就好了!
      

  4.   

    需要用到DateSource控件,你的DBGrid与DateSource相连,DateSource与SQLQuery控件相连
    加上SQLConnection连接数据库就行了。
      

  5.   

    我是想把我要查询的显示出来
    而没有查询的就不要显示>你上面的代码就是这样实现的。Str是保存SQL语句的字符串,SQLQuery1.SQL.add(str);就是按你SQL的语句查询来显示结果。如果还不明白,最好找本书来看看。
      

  6.   

    hehe 谢谢各位了我搞定了!~