adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select tm.bar_code,tm.title,tm.pur_money,tm.p_price,count(*) as total');
adoquery1.SQL.Add('from TM_infro tm where bar_code='''+edit1.Text+''' group by bar_code,pur_money,p_price,title ');
adoquery1.ExecSQL;
adoquery1.open;到open的时候出现dataset does not support books,which are required for multi-record data control 请问有什么办法可以解决?不能把统计的记录显示在dbgrid上。

解决方案 »

  1.   

    select语句不能与ExecSQL搭配使用。删去adoquery1.ExecSQL;这句。
      

  2.   

    删去execsql还是出现一样的错误。
      

  3.   

    对open返回结果集
    而ExecSQL不返回结果集
      

  4.   

    删去execsql还是出现一样的错误。出现dataset does not support books,which are required for multi-record data control的错误是什么原因?
      

  5.   

    select 不能用execsql执行。
    delete update等可以用execsql执行。
      

  6.   

    adoquery1.SQL.Add('select tm.bar_code,tm.title,tm.pur_money,tm.p_price');
    adoquery1.SQL.Add('from TM_infro tm where bar_code='''+edit1.Text+''' group by bar_code,pur_money,p_price,title ');
    去掉,count(*) as total
      

  7.   

    我没有用书签,我用这段代码想统计相同记录的条数,但不知道怎么把统计的数据显示在dbgrid上。
      

  8.   

    adoquery1.SQL.Add('select tm.bar_code,tm.title,tm.pur_money,tm.p_price,count(*) as total');刚没仔细看你怎么能count(*) 啊?那样不就是错了吗
      

  9.   

    这条语句我在sql的查询分析上可以通过的,能统计出数据。
      

  10.   

    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select tm.bar_code,tm.title,tm.pur_money,tm.p_price,count(*) as total');
    adoquery1.SQL.Add('from TM_infro tm where bar_code='''+edit1.Text+''' group by bar_code,pur_money,p_price,title ');
    //adoquery1.ExecSQL;
    adoquery1.open;语法没有错,
    而且
    这条语句我在sql的查询分析上可以通过的,能统计出数据。那错误就不单单是由这段代码引起的了.
      

  11.   

    终于找到原因了,adoquery1可能不支持聚合统计,我用bde里面的query就可以了。
      

  12.   

    各位,用ExecSQL是不会有“错误”,只是不返回结果集罢了。
    To xiaobao_2002(小豹),你也没有真正找到原因。奉劝一下:编程应该认真点,不应该想当然,一定要找出原因。
    count()也没有错,只是不能乱和别的Select字段一起用,具体用文字很难说清楚。
    简单来说,Count(*)返回结果集只有一行,而别的有好多好多行,你让它怎么一起返回???
    自己试吧,应该明白了。
      

  13.   

    同意程序蛇的观点,另外楼主如果想要count()和别的Select字段一起用的话,请使用联合"union"(如:有时希望在查询之后再加个统计了..)