我用的是vb6+ms sql。以下是我的查询语句select 性别,count(姓名) as 人数,avg(年龄) as 平均年龄 from 人事档案信息表 group by 性别 程序里要大概8秒钟,但是我把语句直接放在查询分析器里执行非常快,一秒都不到就查出来了。以下是我的代码:Adodc1.ConnectionString = connstr
Adodc1.CommandType = adCmdText
select 性别,count(姓名) as 人数,avg(年龄) as 平均年龄 from 人事档案信息表 group by 性别
Adodc1.Refresh   //就在这句这里很慢大家帮分析下原因。我数据库里的表 字段都是用中文的。

解决方案 »

  1.   

    你看下这个连接connstr用的是客户端游标还是服务器端的游标,
      

  2.   

    那我改怎么弄啊,绑定就是一个vsflexgrid与adodc绑定的。指定vsflexgrid的datasoure为adodc
      

  3.   

    Dim cn As New ADODB.Connection 
    Dim rs As New ADODB.Recordset
    Dim cmd As New ADODB.Command 
    Set cmd.ActiveConnection = cn 
    rs.CursorLocation = adUseClient注意最后一句,使用的就是客户端游标,
    这样执行rs.open时,
    效率比使用rs.CursorLocation = adUseServer 服务端光标高效
      

  4.   

    declare @sql  varchar(2000)
    set @sql='select 性别,count(姓名) as 人数,avg(年龄) as 平均年龄 from 人事档案信息表 group by 性别'
    exec(@sql)
    可以用这种思路做吗?