我数据库中的一个表中有2万多行数据在使用MSHFlexGrid1进行显示时,最多只能显示1016行我已经安装了SP6,但问题依旧附:我的SQL语句肯定是没有问题的,在查询分析器中可以显示20000多行数据还有,要是用MSHFlexGrid1不能显示万行数据的话,请大家介绍其他的GRID控件感觉   SQL SERVER中的查询分析器中的GRID填充速度真快啊

解决方案 »

  1.   

    翻页就可以了,一般用户也不可能需要看那么多在一页中,再说你的屏幕也没有那么大。哈哈,做一个向下翻页和向上翻页就可以了。使用的时候用ADO的Recordset记录集对象的PageCount, PageSize, AbsolutePage, 这三个属性来设置,对了,别忘记使用adUseClient的客户端游标才能支持这些属性哦~~
      

  2.   

    这是MSHFlexGrid的bug,打上SP5就没有问题了,SP6好像并不包含SP5,发布的时候不要忘记同时发布打过补丁控件文件BTW:显示上万行的纪录有必要吗?操作人员会去看这些数据吗?
      

  3.   

    看看那个 MSHFlexGrid 控件的版本是多少,Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB)
    这个可以显示较大的数据旧版本的FlexGrid不行
      

  4.   

    谢谢大家我去下载 SP5 和SP 4 试试
      

  5.   

    下载安装后问题依旧下面是我得部分关键代码conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sj;Data Source=XW"
    Dim rec As ADODB.Recordset
        Set rec = New ADODB.Recordset
        rec.ActiveConnection = conn
        rec.CursorType = adOpenStatic
      '  rec.CursorLocation = adUseClient
        rec.LockType = adLockPessimistic
    sql="select * from xx"
    rec.Open sql
    Set Grid1.DataSource = rec
      

  6.   

    发现问题了sql="select * from xx"能显示2万多行全部数据sql="SELECT a.a1,b.b2  FROM (a INNER JOIN b ON a.id = b.id)    WHERE (((a.jsnd)='2005'))"
    时只能显示1036行当
    sql="SELECT a.a1,b.b2,c.c3  FROM (a INNER JOIN b ON a.id = b.id)  INNER JOIN tb_zgdwlx ON c.id =b.id     WHERE (((a.jsnd)='2005'))"
    时就只能显示1016行了我将conn.ConnectionString修改为
    conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=sj;Data Source=XW;Connect Timeout=30"故障依旧怀疑时SQL语句查询太慢的问题,现准备改成 存储过程不知大家有什么其他的高见