以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何清除掉内存中的删除行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101439)

--  作者:happyft
--  发布时间:2017/5/31 15:18:00
--  如何清除掉内存中的删除行?
用sql保存数据,删除的数据在按保存按钮前没有真正删除,这些数据要何清掉,如果删除了很多不同的表单才保存的话,这些在内存中的删除会不会混乱了,删除表A的数据却把表B的数据删除掉了,意思这些删除行应该如何控制?

谢谢!

--  作者:有点色
--  发布时间:2017/5/31 15:33:00
--  

AcceptChanges

 

http://www.foxtable.com/webhelp/scr/2365.htm

 


--  作者:HappyFt
--  发布时间:2017/5/31 15:45:00
--  
没太理解,
接受对表A的修改:

DataTables("表A").AcceptChanges() 

这个好像就是让ft觉得它没改变过吧,

但比如我在两个表中各新增了两行,然后又将其删除,此时若执行DataTables("表A").AcceptChanges() ,表示没改变,但这两行还是在内存中,还是跑到哪里去了?


--  作者:有点色
--  发布时间:2017/5/31 16:05:00
--  

 你可以把其理解成撤销修改,效果等效。

 

 只是它依旧在内存里面,只是获取的时候忽略掉而已。


--  作者:HappyFt
--  发布时间:2017/5/31 16:16:00
--  
这样的话如果自动编号的单据删除后把某个编码回收了,下次新增时又用这个编号保存了一张单据,那上次删除的那个单号还在内存中,会不会保存时又把后面新增的这张单删除 掉了,这样会不会导致数据丢失,最近几天出现这种情况
--  作者:有点色
--  发布时间:2017/5/31 16:30:00
--  

 自动编号、自动递增的编号,没有回收的功能,是一直递增下去的。之间不会有冲突。


--  作者:HappyFt
--  发布时间:2017/5/31 18:22:00
--  
   Dim systable As System.Data.DataTable = tb.BaseTable
        Dim ChangeTable As System.Data.DataTable = systable.GetChanges(System.Data.DataRowState.Deleted)
        If ChangeTable IsNot Nothing Then
这种得到的删除行一定是保存过的吗,还是刚新增就删除的也会在里面,那样要如何区分?

--  作者:有点色
--  发布时间:2017/5/31 18:26:00
--  

 得到的就是最近一次保存后变化的数据,新增的不包含在里面。