帮别人搞一个数据库的小程序,用的BDE链接Access数据库,结果对表进行分组之后无法使用 query.RecordCount获得符合条件的记录数。
  但是当我把Access数据库中的表转换成Parodox表,并创建一个Parodox数据库后就完全正常。
  不知道为什么,有人碰到过么?有知道解决方法的请赐教!

解决方案 »

  1.   

    用SQL的Count(*)代替RecordCountBde操作Access就是问题多多。
      

  2.   

    我是通过query分组查询了,然后要根据记录数生成一个给一个数组分配空间。
     我是这样写的query_Data的strings属性中我是这样写的
      select ZDM,sum(s1),sum(s2),sum(s1*s3)/sum(s1) from table1 group by ZDM部分程序如下
      var
         reccount:integer;
         zdname:array of string;
      begin   
         ....
         reccount:=query_Data.recordcount;
         setlength(zdname,reccount);怎么样能把这个问题解决呢?
      

  3.   

    漏了一段,还有给数组赋值
       i:=0;
       query_data.first;
       while not query_data.eof do
       begin
         zdname[i]:=query_data.fields.fields[0].AsString;
         i:=i+1;
         query_data.next;
       end;
          
           
      

  4.   

    用ado连接access是最佳搭配
    另外就是bde+Parodox
      

  5.   

    那不好意思问一下,ADOQuery对应BDE中的Query,那BDE中链接数据库的DataBase在ADO中对应哪个??在BDE中,为了不让弹出登陆对话框,我用了Database控件,在ADO中怎么链接数据库呢??比如我的数据库名字是electric的Access类型,那么在哪个数据库控件中进行设置???
      

  6.   

    使用ADOConnection建立与Access的连接,使用ADOTable或ADOQuery生成数据集!
    设置ADOConnection的connectionstring为“Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Jet OLEDB:Database Password=MyPassword;Data Source=D:\DataBase\TEXTDB.mdb”
    设置ADOTable或ADOQuery的connection为连接“ADOConnection”就行了,使用很方便!
      

  7.   

    楼上的 thiswang(黑云天使)我输入如下的sql语句程序在
    AdoQuery1.Active:=True; 的时候就报错
      “未指定的错误”select BDZ,
          sum(ZDDJYG*ZDDJGY*0.01)/sum(ZDDJYG),sum(ZDXJYG*ZDXJGY*0.01)/sum(ZDXJYG),
          sum(ZDDJYG*ZDDJNY*0.01)/sum(ZDDJYG),sum(ZDXJYG*ZDXJNY*0.01)/sum(ZDXJYG),
          sum(ZDDJYG*ZDDJSY*0.01)/sum(ZDDJYG),sum(ZDXJYG*ZDXJSY*0.01)/sum(ZDXJYG),
          sum(ZDDJYG*ZDDJTL*0.01)/sum(ZDDJYG),sum(ZDXJYG*ZDXJTL*0.01)/sum(ZDXJYG),
          sum(ZDDJYG*ZDDJQT*0.01)/sum(ZDDJYG),sum(ZDXJYG*ZDXJQT*0.01)/sum(ZDXJYG)
      from xl where XZ='负荷' group by BDZ但是当我输入把BDZ字段去掉,再去掉后面的group by就能通过
    难道ADO中不能进行分组???
    可是我在BDE中这些都通过了???谁能告诉我怎么回事??
      

  8.   

    可能是你在sum(ZDDJYG*ZDDJGY*0.01)/sum(ZDDJYG)相除的时候出现了除0值,要不然不会出现未指定的错误,因为数据库的错误都有提示