加一个datasource,一个DBGrid
datasource1 的dateset设置为query1,dbgrid的datasourse设置为datasoucce1 
OK

解决方案 »

  1.   

    首先要有数据源DATASOURCE1,DATASOURCE.DATASET设为DATAMODULE2.query1
    再把dbgrid.DataSource设置为DATASORCE1,这样就可以在dbgrid显示
    另外你的代码我感觉有点问题
    应改为:
    begin
    DataModule2.Query1.CLOSE ;
    DataModule2.Query1.sql.Clear;
    DataModule2.Query1.sql.Add('Select * from jobs Where job_id="2"');
    DataModule2.Query1.OPEN ;
    end;
      

  2.   

    begin
    DataModule2.Query1.Open ;
    DataModule2.Query1.sql.Clear;
    DataModule2.Query1.sql.Add('Select * from jobs Where job_id="2"');
    DataModule2.Query1.ExecSQL ;
    dbgrid1.DataSource:=datasoucce1;
    end;
      

  3.   

    如果要执行一个查询命令:
    查询关键字是用户输入的,从edit1.text中得到。如何写?
    变量又如何定义?
      

  4.   

    procedure TForm1.Button4Click(Sender: TObject);
    var
       data_1 : integer;
    begin
    data_1:=strtoint(edit1.Text );
    DataModule2.Query1.close ;
    DataModule2.Query1.sql.Clear;
    DataModule2.Query1.sql.Add('Select * from jobs Where job_id=data_1');
    DataModule2.Query1.Open;
    end;此上程序有哪错了?
      

  5.   

    没错,要想显示不要忘了把query的active设为true
      

  6.   

    procedure TForm1.Button4Click(Sender: TObject);
    var
    begin
    DataModule2.Query1.close ;
    DataModule2.Query1.sql.Clear;
    DataModule2.Query1.sql.Add('Select * from jobs Where job_id=:data');DataModule2.Query1.parambyname('data').asinteger:=strtoint(edit1.Text );;
    DataModule2.Query1.Open;
    end;
    你可以试试
      

  7.   


    DataModule2.Query1.sql.Add('Select * from jobs Where job_id='+''''+data_1+'''');
      

  8.   

    飞狼的程序中data_1是integer 类型把再程序中同string类型不匹配吧
      

  9.   

    主要原因应该是这一句: DataModule2.Query1.ExecSQL ;
        执行ExecSQL方法是不能返回数据集的,只有采用Open
      

  10.   

    是不是
    datasource1的dateset属性,dbgrid的datasourse属性忘了设置或设置错误?