Foxtable(狐表)用户栏目专家坐堂 → foxtable+sql增加300行要等待3分钟?


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

主题:foxtable+sql增加300行要等待3分钟?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
foxtable+sql增加300行要等待3分钟?  发帖心情 Post By:2020/7/27 16:08:00 [只看该作者]

foxtable+sql增加300行要等待3分钟?

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


加好友 发短信
等级:狐精 帖子:3147 积分:20966 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/7/27 16:09:00 [只看该作者]

不会吧,代码发来看看。

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 16:20:00 [只看该作者]

新建行事件有没有什么代码?有没有表达式列引用?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/7/27 16:21:00 [只看该作者]

增加的是空白行,表的事件代码会影响增加的速度吗?

PrepareEdit事件


If e.Row("ruku") = True Then

   Select Case e.Col.Name

       Case "chanpinid","sdate","shuliang","beizhu"

          e.Cancel = True

    End Select

End If



StartEdit 事件


If e.Col.Name = "chanpinid"  Then

    e.Cancel = True

    If  e.Row("ruku") = False

       Forms("其他入库选产品").Open()

    End If

End If



DataColChanged 事件


Select Case e.DataCol.Name

    

Case "ruku"  '复制数据到库存流水

    Dim dr As DataRow=e.DataRow

    If e.DataRow("ruku") = False

        

        Dim nma() As String = {"sdate","chanpinid","shuliang"} 'A表数据来源列

        Dim nmb() As String = {"rdate","chanpinid","shuliang"} 'B表数据接收列

        Dim drs As DataRow = DataTables("kucun").AddNew

        For i As Integer = 0 To nma.Length - 1

            drs(nmb(i)) = e.DataRow(nma(i))

        Next

        drs("beizhu") = "库存盘点"

        drs("bianhao")="KC" & dr("_Identify")

        DataTables("kucun").save()

    Else

        

        

        Dim Result As DialogResult

        Result = MessageBox.Show("您确定要取消该产品入库吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

        If Result = DialogResult.Yes Then

            Dim nma() As String = {"sdate","chanpinid","shuliang"} 'A表数据来源列

            Dim nmb() As String = {"rdate","chanpinid","shuliang"} 'B表数据接收列

            Dim drs As DataRow = DataTables("kucun").AddNew

            For i As Integer = 0 To nma.Length - 1

                drs(nmb(i)) = e.DataRow(nma(i))

            Next

            drs("beizhu") = "库存盘点"

            drs("shuliang") = -drs("shuliang")

            drs("bianhao")="KC" & dr("_Identify")

            DataTables("kucun").save()

        Else

            

            e.Cancel = True

            

        End If

        

        

    End If

    

    

End Select

[此贴子已经被作者于2020/7/27 16:22:50编辑过]

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/27 16:52:00 [只看该作者]

4楼这3个事件应该不会触发,但是像新增行事件这种就会触发。有没有表达式列引用?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/7/28 9:35:00 [只看该作者]

测试发现把以上代码屏蔽后增加行速度暴增。

表达式是直接引用父表的数据。这样也会影响速度?


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:109678 积分:558082 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/28 9:45:00 [只看该作者]

"ruku"是逻辑列,新增行会触发逻辑列的datacolchanged

SystemReady = False
'新增行代码
SystemReady = True

 回到顶部