以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41175)

--  作者:程兴刚
--  发布时间:2013/10/13 1:51:00
--  动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!

1、新增行执行了load包括这样写:dr.load(true),动态卸载表再重新加载进来,新增的行没有了,所有的数据记录恢复到原始状态

2、先打开要卸载的表(该表显示了表标题),然后执行卸载表命令,电脑死机,杀进程(这个问题中途有没有了,明天再测试)。

 

或许dr.load(true)只是把数据保存在了datatable中,直接卸载表时没有将保存的datarow同步到后台数据库中,按理,dr.load(true)应该及时同步数据到后台数据库。

 

望各位测试一下试试,今天的最新版,请方技术人员核实处理。

[此贴子已经被作者于2013-10-14 19:23:32编辑过]

--  作者:程兴刚
--  发布时间:2013/10/13 2:21:00
--  

查到原因,dr.load(true)没起作用:

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.foxdb


--  作者:lsy
--  发布时间:2013/10/13 6:47:00
--  
与数据有关的事,无小事。
--  作者:狐狸爸爸
--  发布时间:2013/10/13 11:35:00
--  

将卸载表的按钮改为:

 

DataTables("表A").Save()

DataTables.unload("表A")

 

 

这个和加载和卸载没有关系的。

 

另,新增行不存在Load,你要保存新增行的话,应该dr.Save()

[此贴子已经被作者于2013-10-13 11:36:43编辑过]

--  作者:程兴刚
--  发布时间:2013/10/13 11:38:00
--  
现在的问题是dr.load(true)失去了意义,以前是可以的,dr.load(true)必须同步到后台去,datatable中获得的数据和其他用户获得的数据才是最新的,数据记录多了,不可能频繁地DataTables("表A").Save(),必须要有及时同步行的效果!
[此贴子已经被作者于2013-10-13 11:38:48编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/10/13 12:00:00
--  

Load是从后台提取数据,新增行不存在后台数据,没有必要Load的,以前也是这样的。

 

不存在频繁DataTables(“xxx”).Save啊?

你可以:dr.Save()

 

例如:

 

MainTable = Tables("表A")
Dim dr As DataRow
For i As Integer = 0 To 10
    dr = DataTables("表A").AddNew()
    dr("第一列") = format(DataTables("表A").DataRows.Count + i,"00000")
    dr.Save()
Next

 

当然如果增加的行很多,这样还不如最后统一保存高效:

 

MainTable = Tables("表A")
Dim dr As DataRow
For i As Integer = 0 To 1000
    dr = DataTables("表A").AddNew()
    dr("第一列") = format(DataTables("表A").DataRows.Count + i,"00000")
Next
DataTables("表A").Sve()


--  作者:程兴刚
--  发布时间:2013/10/13 12:17:00
--  

1、帮助中load(true)说明是同时保存数据的;

2、在我的系统中,昨晚就已经连续测试dr.save()依然无效,看我的QQ留言,说的比较详尽。


--  作者:程兴刚
--  发布时间:2013/10/13 12:25:00
--  
新増行load(true)不自动保存,网络应用存在问题,不能将自己的新数据提交给对方,望改。
--  作者:lsy
--  发布时间:2013/10/13 12:50:00
--  

DataTables("表A").Sve()。

只保存修改过的(包括新增行)数据。

很多人担心,保存整个表会耽误时间,实际是不会的,只在同时保存表结构的时候,会耗费时间。

不信的话,弄个几万行数据,只修改一个单元格,或者只新增一行,然后保存整个表,觉察不到保存的过程。

所以,俺不纠结,就用DataTables("表A").Sve()。


--  作者:程兴刚
--  发布时间:2013/10/13 13:19:00
--  
保存还要load,是不是多此一举?只保存修改后的记录和新増的行,至少要逐条记录判断吧?肯定不如dr.load()来得快!