大哥们,小弟数据库中有上百万的记录,查询时经常出现“内存溢出”的问题,请帮帮小弟。。

解决方案 »

  1.   

    (分页的方法)
    1、一次性打开表,对指定页游标进行分页
    rs.Open "select * from table", cn, 1, 1
    rs.PageSize = 20
    rs.AbsolutePage = 12、每显示一页时都对表进行一次查询
    rs.open "select top 20 form table", cn, 1, 1就问各位大哥,这两种方法那种比较好。
      

  2.   

    个人认为用以下语句分页比较好:
    select top 20 * from tb where id > num    
    or
    select top 20 * from tb where id <num
      

  3.   

    还有一个问题让小弟特别头痛的是
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _
        "\book1.xls].[Sheet1] FROM tb"
    cnSrc.Execute strSQL
    这句代码在VB环境中运行就没有问题,编成EXE后就出现“内存溢出”,大家有没有见过这样的情况呀。。
      

  4.   

    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _
        "\book1.xls].[Sheet1] FROM tb where name='abc'"
    cnSrc.Execute strSQL
    导出name为“abc”的记录只有一百多条但是还是出现在VB环境下可以导出,
    在编译为EXE后则出现“内存溢出”...
      

  5.   

    执行
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _
        "\book1.xls].[Sheet1] FROM tb where name='abc'"
    cnSrc.Execute strSQL
    就出现错误,大哥们帮我看一下,这句代码是否不够规范,如何才可以优化他
      

  6.   

    换成
    strSQL = "SELECT * FROM tb where name='abc'"
    rs=cnSrc.Execute(strSQL)
    会错吗?如果会就是记录太多巴。
    如果不会就是[Excel 8.0;Database=" & App.Path & \book1.xls] 不支持这么多把
      

  7.   

    换成
    strSQL = "SELECT * FROM tb where name='abc'"
    rs=cnSrc.Execute(strSQL)
    不会错,但现在我想实现对查询数据的导出,该怎么办
    如果说
    [Excel 8.0;Database=" & App.Path & \book1.xls]
    不支持这么多数据,为什么在VB环境下能成功导出呢???