使用adoquery+datasetprovider+clientdataset+datasource时
adoquery.sql.text=select * from table1 正常
adoquery.sql.text=select count(*) from table1 抛出如题错误,请高人帮忙!!!

解决方案 »

  1.   

    select count(*) from table1 
    count(*)代表table1的什么呢?
      

  2.   

    count(*) 问题的根本应该在count(*)上
      

  3.   

    adoquery1.SQL.Text:=select count(*) from lpmast; //lpmast 表名
    clientdataset1.Active:=false;
    clientdataset1.Active:=true;
    //出错adoquery1.SQL.Text:=select * from lpmast; //lpmast 表名
    clientdataset1.Active:=false;
    clientdataset1.Active:=true;
    //正常
      

  4.   

    不用dbgrid正常,但连上dbgrid就不行。或者 clientdataset1.fieldbyname('count(*)').asinteger也不行
      

  5.   

    你是不是设置了DBGRID的列值呢?
      

  6.   

    select count(*) from table1 
    改为select count(*)as Id from table1 
    试试
      

  7.   

    //完整代码如下,未作任何其他配置
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         datasetprovider1.DataSet:=adoquery1;
         Clientdataset1.ProviderName:=datasetprovider1.Name;
         datasource1.DataSet:=Clientdataset1;
         dbGrid1.DataSource:=datasource1;     adoquery1.ConnectionString:='Provider=OraOLEDB.Oracle.1;Password=pcafis;Persist Security Info=True;User ID=pcafis;Data Source=afis';
         adoquery1.SQL.text:='select count(*) from tpmast';
         clientdataset1.Active:=false;
         clientdataset1.Active:=true;
    end;
      

  8.   

    select count(*) from 好像要加where 条件,试试。。
      

  9.   

    你的adoquery是作为中间层的吧,好像和clientdateset搞混了,adoquery.sql='select * from table',保持不变,clientdataset='select count(*) from tabel',试试看,好运
      

  10.   

    还是不行,这种情况在进行统计时经常碰到,难道大家没碰到过这种情况吗??
    我只想得到统计结果在Clientdataset1中,有别的方法吗?请给出简单的脚本,谢谢!!
      

  11.   

    adoquery是源数据阿,要保证它是一个数据表,然后在客户端可以对表进行统计,sql语句写道clientdataset里面
      

  12.   

    谢谢各位!!问题解决廖,可能是delphi的bug问题,在adoquery里面添加 count字段即可。山分!