以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  反复后台统计表,写入到ft中,内存一直增加,如何办?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=128040)

--  作者:kgdce
--  发布时间:2018/11/27 18:09:00
--  反复后台统计表,写入到ft中,内存一直增加,如何办?
For Each na As String In nax
    Dim b1 As New SQLGroupTableBuilder("多表统计2",na)
    b1.C
    If str2.Contains("|") Then
        Dim values2() As String
        values2 = str2.Split("|")
        For x As Integer =0 To values2.Length-1
            b1.Groups.AddDef(values2(x)) \'只有一个分组列
        Next
    Else
        b1.Groups.AddDef(str2) \'只有一个分组列
    End If
    Select Case str5
        Case "求和"
            b1.Totals.AddDef(str6) \'对统计列进行统计
        Case "平均值"
            b1.Totals.AddDef(str6,AggregateEnum.average) \'对统计列进行统计
        Case "记录数"
            b1.Totals.AddDef(str6,AggregateEnum.Count)
        Case "平均得分率"
        Case "区间占比"
        Case "区分度"
    End Select
    b1.Build
    Dim f As New Filler
    f.SourceTable = DataTables("多表统计2") \'指定数据来源
    f.DataTable = DataTables("多表统计1") \'指定数据接收表
    f.Fill() \'填充数据
Next

同样的表结构,通过后台统计将多表统计的结果合到第一张表中,但反复多次统计,会发现内存不断增加,最后程序就崩溃,请问此问题原因是什么?该如何解决呢?

--  作者:有点甜
--  发布时间:2018/11/27 18:31:00
--  

1、试试

 

For Each na As String In nax
    Dim b1 As New SQLGroupTableBuilder("多表统计2",na)
    b1.C
    If str2.Contains("|") Then
        Dim values2() As String
        values2 = str2.Split("|")
        For x As Integer =0 To values2.Length-1
            b1.Groups.AddDef(values2(x)) \'只有一个分组列
        Next
    Else
        b1.Groups.AddDef(str2) \'只有一个分组列
    End If
    Select Case str5
        Case "求和"
            b1.Totals.AddDef(str6) \'对统计列进行统计
        Case "平均值"
            b1.Totals.AddDef(str6,AggregateEnum.average) \'对统计列进行统计
        Case "记录数"
            b1.Totals.AddDef(str6,AggregateEnum.Count)
        Case "平均得分率"
        Case "区间占比"
        Case "区分度"
    End Select
    Dim dt = b1.build(True)
    Dim f As New Filler
    f.SourceTable = dt \'指定数据来源

    f.DataTable = DataTables("多表统计1") \'指定数据接收表
    f.Fill() \'填充数据
Next

 

2、最后你【多表统计1】有多少行数据?

 

3、做个对应或者出错的实例发上来测试。