以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  保存效率、升级效率  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=131265)

--  作者:刘林
--  发布时间:2019/2/21 16:25:00
--  保存效率、升级效率
1、foxtable的一个问题一至很困惑,用save保存记录稍多一点就很慢,比如5000条记录保存要花几分钟,按例子做了sql提取保存的方式,测试6600条记录,只有两列数据有变更,花了290秒,道底怎样才能很快保存,一至都是痛点,无痛保存,就是在保存的时侯不影响工作,可以进行其他操作。
2、远程升级问题,因为项目边做边用,经常升级,用户升级时要等很久,网好的快点,网慢就很麻烦,如何能实现无痛升级,就是检测到升级,系统自动升级,但不影响本次操作进程,后台无感自动升级,等下次启动时就是最新版了。

--  作者:有点蓝
--  发布时间:2019/2/21 16:37:00
--  
1、sql提取保存的方式 -- 是怎么做的?肯定没有做对

2、内置的升级方式没有办法。您可以自己做升级,使用Network.DownloadFile下载升级文件,下载后再提示更新

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=90233
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=82266

--  作者:刘林
--  发布时间:2019/2/22 7:12:00
--  
Dim st1 As Date = Date.Now
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("中考表"),"中考表","_Identify","[_Identify]","ksh|考试室","ksh|考试室",1)
Dim sql As String
Dim cmd As New SQLCommand
cmd.ConnectionName = 
Dim Count As Integer = 0
try
    Connections("XX").BeginTransaction
    For Each s As String In strlist
        cmd.CommandText = s
        Count += cmd.ExecuteNonQuery()
    Next
    Connections("XXX").Commit \'提交事务,所有操作生效
Catch ex As Exception \'如果出错
    msgbox(ex.message)
    Connections("XX").Rollback() \'回滚事务,撤销所有操作
End Try
Tables("中考表").DataTable.BaseTable.AcceptChanges()   \'提交修改
     MessageBox.Show("亲,我正在为节省您的每一秒钟努力,本次保存共耗时: " & (Date.Now - st1).TotalSeconds & "秒")

因为只有两列数据要变就保存的这两列,测试6607条记录花290秒,请问老师如何提效
[此贴子已经被作者于2019/2/22 7:13:29编辑过]

--  作者:有点蓝
--  发布时间:2019/2/22 8:54:00
--  
这个代码不应该这么慢的。看来您的服务器和网络实在是太慢了。

如果是SqlServer,并且都是新增数据,试试这种方式:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=84350

--  作者:刘林
--  发布时间:2019/2/22 10:57:00
--  
新增我是只能用save,新增用这个代码出现记录无故重复,如10条记录,下次打开就重复了一样的2条,成了20条,不晓得什么原因,我只针对改写数据才用的这个代码,但还是很慢,我不晓得什么原因?
--  作者:有点蓝
--  发布时间:2019/2/22 12:08:00
--  
如果在本地或者在局域网内测试不慢,就是服务器和网络的问题了