Foxtable(狐表)用户栏目专家坐堂 → SQL跨表查询如何即能加快速度又能即时保存


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

主题:SQL跨表查询如何即能加快速度又能即时保存

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


加好友 发短信
等级:小狐 帖子:360 积分:3404 威望:0 精华:0 注册:2016/5/25 21:31:00
SQL跨表查询如何即能加快速度又能即时保存  发帖心情 Post By:2017/11/24 23:19:00 [只看该作者]

SQLtable跨表查询
窗体AfterLoad代码
DataTables("合同_合同").DataCols("申请编号").RaiseDataColChanged()

表DataColChanged代码

Select Case e.DataCol.Name  

    Case "申请编号"

        Dim nms() As String = {"商品ID","订单数量","申购人","说明","订单明细号"}

        If e.NewValue Is Nothing Then

            For Each nm As String In nms

                e.DataRow(nm) = Nothing

            Next

        Else

            Dim dr As DataRow

            dr = DataTables("合同_包材申请表").Find("[申请编号] = '" & e.NewValue & "'")

            If dr IsNot Nothing

                For Each nm As String In nms

                    e.DataRow(nm) = dr(nm)

                Next

            End If

        End If

        

End Select

For Each dt As DataTable In DataTables

    dt.Save()


千条数据打开窗体就极慢,后来发现删除自动保存代码

For Each dt As DataTable In DataTables

    dt.Save()


速度至少可以提升一倍以上,只是不能修改即保存的功能,请教老师有什么更好方法


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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/25 8:34:00 [只看该作者]

保存当前操作的表就可以了。没有必要保存整个项目的表。



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


加好友 发短信
等级:小狐 帖子:360 积分:3404 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2017/11/25 10:58:00 [只看该作者]

就是写在当前表的DataColChanged中
只是在窗体AfterLoad,不断触发了DataColChanged
DataTables("合同_合同").DataCols("申请编号").RaiseDataColChanged()

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


加好友 发短信
等级:超级版主 帖子:105948 积分:538809 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/25 11:06:00 [只看该作者]

去掉DataColChanged的保存代码

窗体AfterLoad代码
DataTables("合同_合同").DataCols("申请编号").RaiseDataColChanged()
DataTables("合同_合同").save

另外为什么打开窗口就要重置列,有必要每次都重置么。重置功能不要滥用

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


加好友 发短信
等级:小狐 帖子:360 积分:3404 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2017/11/25 16:13:00 [只看该作者]

重置列是为了SQLtable的跨表查询

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/26 13:13:00 [只看该作者]


 回到顶部