找回密码
 加入
搜索
查看: 2008|回复: 4

[效率算法] sqlite 數據 加到 treeview 效率問題

[复制链接]
发表于 2019-10-4 14:35:35 | 显示全部楼层 |阅读模式
本帖最后由 w60711 于 2019-10-4 14:40 编辑

data.db:
表:T_Category
栏位:F_id, F_ClassiFication, F_SubClass, F_Sort, F_Server, F_IconImage, F_PicImage, F_Spares
数据:(大约有1万笔以上,数据库约500MB)
1, 主分类1, 子分类1, 项目名称, 伺服器位置, 2进制图片, 2进制图片, 1+2+3
2, 主分类1, 子分类2, 项目名称, 伺服器位置, 2进制图片, 2进制图片, 1+2+3
3, 主分类2, 子分类1, 项目名称, 伺服器位置, 2进制图片, 2进制图片, 1+2+3
4, 蔬菜, ˋ植根类, 辣根, Server1, 2进制图片, 2进制图片, 1+2+3
.
.
.
开启程序时,会依据分类(前3项)加到树状列表中,如下图:
其中,小明 小华 等等是写死的(根),会根据 1 2 3 去判断要写到哪个根目录


现在问题来了,光是读取到写入列表
就花了快1.2分钟...
请求大神帮忙改为效率方法,感谢~

以下为原代码
Func _CreateListTree($Server) ;;建立树状列表分类
        Local $hQuery, $hQuery2, $aArray, $bArray
        If $Server = '小明' Then
                $server = 'T_MIN'
                $root = $tMIN ;;创建根 时候的名称
        EndIf
        If $Server = '小华' Then
                $server = 'T_HWU'
                $root = $tMIN
        EndIf
        If $Server = '小李' Then
                $server = 'T_LEE'
                $root = $tMIN
        EndIf
        _SQLite_Exec($sDB, "BEGIN;") ;;显性事务
        Local $row, $col
        _SQLite_GetTable2D(-1, "SELECT F_ClassiFication FROM T_Category;", $hQuery, $row, $col)
        $aArray = _ArrayUnique($hQuery)
        Local $Class[$aArray[0]-2]
        For $k = 0 To $aArray[0] -3
                $Class[$k] = GUICtrlCreateTreeViewItem($aArray[$k+2],$root)
                _SQLite_GetTable2D(-1, "SELECT F_SubClass FROM T_Category Where F_ClassiFication='" & $aArray[$k+2] & "';", $hQuery2, $row, $col)
                $bArray = _ArrayUnique($hQuery2)
                Local $Sub[$bArray[0]-2]
                For $m = 0 To $bArray[0] -3
                        $Sub[$m] = GUICtrlCreateTreeViewItem($bArray[$m+2],$Class[$k])
                Next
        Next
        _SQLite_Exec($sDB, "COMMIT;") ;;关闭显性事务
EndFunc


PS.
我有看到Afan大的 逐级载入
但是弄了半天还是无法改成从DB提取的方式...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-10-4 15:49:02 | 显示全部楼层
是数据库读取占用时间,还是建treeview

评分

参与人数 1金钱 +20 收起 理由
w60711 + 20 很给力!

查看全部评分

 楼主| 发表于 2019-10-7 18:53:37 | 显示全部楼层
heavenm 发表于 2019-10-4 15:49
是数据库读取占用时间,还是建treeview

这真是一语点醒梦中人
有些语句加的位置不对导致缓慢
读取db约2秒 建立列表约2-4秒
已大幅缩减所需时间了
如果可以展开列表时再载入或许更好(?
发表于 2019-10-9 10:13:56 | 显示全部楼层
本帖最后由 kk_lee69 于 2019-10-9 10:23 编辑

我有看到Afan大的 逐级载入,

上面不是好了 那你只要 仿照 字串的格式 就好啊

DB 抓出資料  轉好 字串格式 就直接套用 不就好了
发表于 2019-10-19 14:57:46 | 显示全部楼层
个人感觉,DB读取有点小BUG,之前写过一个仓库工具!后来改成  mysql 这个效率高很多!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 18:02 , Processed in 0.074566 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表