Foxtable(狐表)用户栏目专家坐堂 → System.OutOfMemoryException


  共有1968人关注过本帖树形打印复制链接

主题:System.OutOfMemoryException

帅哥哟,离线,有人找我吗?
creastzh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:312 积分:2299 威望:0 精华:0 注册:2023/1/11 7:15:00
System.OutOfMemoryException  发帖心情 Post By:2024/7/24 5:46:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:question.txt

图片点击可在新窗口打开查看
[此贴子已经被作者于2024/7/24 5:48:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
creastzh
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:312 积分:2299 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/7/24 5:53:00 [显示全部帖子]

老师, 我想了解的问题发不了,直接提示上图的错误, 所以我将内容拷贝到了附件中,请帮我看一下解决方法, 谢谢!
此外,论坛上看到类似发帖使用Sql From语句无法上传,我试着进行 将Sql 语句中的 From改成 F ROM, FR OM 好像也不行, 不知是何原因, 谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
creastzh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:312 积分:2299 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/7/24 21:57:00 [显示全部帖子]

项目启动时,我设置了BeforeLoadOuterTable 事件:
'按条件加载工作表

Select Case e.DataTableName 
    Case "Data", "Start", "ResourceID" 
        '加载所有数据
    Case "EMList"
        e.SelectString = "S elect * F rom {" & e.DataTableName & "} Where [在册]='Y'" 
    Case Else
        e.Cancel = True
        e.SelectString = "S elect * F rom {" & e.DataTableName & "} Where [_identify] is null"
End Select 

因此当前加载就是空表.

此前我也曾向论坛询问过, 当前我编写的的表单数量已经超过100个了, 论坛上的老师也建议我不用卸载表,但如果在任务自动化过程中这么多表都打开我查看到任务管理器中资源占用超过450M,甚至到了540M左右,经常导致系统因内存不足而终止, 自从修改程序为每次运行结束就卸载表的方式后, 任务占用内存基本在220M左右, 差错也少了很多, 但我不知道会出现这次这样的问题, 既然这样的话,那我这次再按您说的方法尝试一下SqlCommand,和改用 加条件加载空表试试看. 谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
creastzh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:312 积分:2299 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/7/24 22:05:00 [显示全部帖子]

刚才我使用循环指令测试了一下, 如果没有加载所有表,仅加载基础的4个表,在任务管理器中任务占用内存170M左右, 在加载完全部107个表(全部为空表)后内存占用250.4M, 我不知道这种状态是否正常.
Dim dr1a As List(Of String) = DataTables("Data").SQLGetValues("数据库_表名", "数据库_表名 is not Null")
For Each tn As String In dr1a
    Output.Show(tn)
    If Not DataTables.Contains(tn) Then
        DataTables.Load(tn)
    End If 
Next 

 回到顶部