假设Table1的表名为TT,用了Table1.Assign(Query1)后,DBGrid中可以看到Table1的数据就是Query1中的数据,但我用Query2.SQL.Add('Select * from TT');,却什么也得不到。这是为什么啊?

解决方案 »

  1.   

    open了吗?
    query2.open;//或query2.active:=true;
      

  2.   

    1  query2.close
    2  query2.sql.clear
    3  query2.sql.add('Select * from TT')
    4  query2.open
      

  3.   

    是按以上步骤做的阿,但是当用Query2.SQL.Add('Select * from TT')时,得到一个字段date,但date中什么数据也没有,不知道这是哪里来的字段,数据集里根本没有这个字段;当用
    Query2.SQL.Add('Select aa from TT')时,却出现错误说aa为非法字段,但aa明明是我数据集中的字段啊。
    我的数据库是Oracle,数据集里含有计算字段,这不影响吧?
      

  4.   

    sleep(500);//延时
    1  query2.close
    2  query2.sql.clear
    3  query2.sql.add('Select * from TT')
    4  query2.open
      

  5.   

    query2.sql.clear
    query2.sql.add('select * from TT');
    query1.ExecSQL;
    query1.active:=true;
      

  6.   

    计算字段也没事呀
    query2.sql.clear
    query2.sql.add('select * from TT');
    query2.open;
    应该没事
      

  7.   

    我用的是ODAC中的OraQuery和OraTable做的,OraQuery2.sql.add('select * from TT');就什么也得不到。急死了!
      

  8.   

    你是不是在DBGRID中设了一个字段
    双击DBGRID看看是不是设了?????
      

  9.   

    有可能TDataSource指向Table,所以query查到的记录没在DBgird看到..
    看一下Tdatasource的DataSet属性..
      

  10.   

    可能是双击dbgrid后多增加了一个字段。
      

  11.   

    Query2指定链接的数据库了吗?
    另外要是实在毛病太多, 重新个程序, 只放个TQuery, TDatasource, TDBGrid上去试验.
      

  12.   

    高手们再帮我找找错误,谢谢
    我是这样做的:
    //先用Oraquery1得到一个数据集:
    Oraquery1.Close;
    OraQuery1.SQL.Clear;
    OraQuery1.SQL.Add('select aa,bb from 表A ');
    OraQuery1.Prepare;
    OraQuery1.Open;
    //放一个OraTable表组件在Form上,表名设为TT,执行以下操作:
    OraTable1.Assign(OraQuery1);
    OraTable1.Open;
    While not OraTable1.Eof do//重新给aa字段赋值,ff为自定义的一个函数
      begin
        OraTable1.Edit;
        OraTable1.FieldByName('aa').Value:=ff(OraTable1.FieldValues['bb']);
        OraTable1.Next;
      end;
    //到这一步已经能在DBGrid中看到TT表的字段为aa,bb了,而且aa字段的值也是重新计算后的值
    //以下想用OraQuery2将TT表的内容查询出来,但是什么也查不到
    OraTable1.Active:=true;
    Oraquery2.Close;
    OraQuery2.SQL.Clear;
    OraQuery2.SQL.Add('select * from TT ');
    OraQuery2.Prepare;
    OraQuery2.Open;
    尤其是OraQuery2.SQL.Add('select * from TT ');这一句,如果我换成
    OraQuery2.SQL.Add('select aa,bb from TT ');时,居然说aa,bb是不合法的,但aa,bb明明存在的啊!
    怎么也想不明白啊。声明一下:我用的是ODAC组件中的OraQuery和OraTable,不是BDE中的Query和Table,这有影响么?
      

  13.   

    报告错误时说:TT表不存在,这是为什么啊?在BDE中用同样方法就可以实现的,可是用ODAC就实现不了