query1.close;
query1.sql:='select * from t1';
query1.open;

解决方案 »

  1.   

    query1.sql.text :='select * from t1';哥哥, 少了TEXT
      

  2.   

    query1.close;
    query1.sql.clear;
    query1.sql:='select * from t1';
    query1.open;
      

  3.   

    老大,不会吧!
    除非你的DataSet有问题。
      

  4.   

    是这样:
    1。用ADOquery,有一个表mytable,字段有:(编号,名称,价格)
    2。然后我写SQL查询语句select * from mytable where 编号='12345',
       查询结果为空(其实这条记录根本不存在,结果肯定为空)
    3。这时DBgrid显示也为空。
    问题在于,只要在这个时候执行select * from mytable,就会出错。
    为什么????
      

  5.   

    query1.clear;
    query1.sql 可能没清空
      

  6.   

    我是这样写的:    
        query1.close
        query1.sql.clear
        query1.sql.text:='select * from mytable';
        query1.open;
      

  7.   

    1)确认你的显示控件的TDataSource的DataSet是连到你的Query1
    2)确认你的T1是个数据库中存在的表名
    3)Query1的SQL给完值以后是不是Open的。如下试试
    Query1.Close;
    Query1.SQL.Text:='Select * from T1';
    //如果用的是Query1.SQL.Add(...)之前一定要Query1.SQL.Clear;
    Query1.Open;