以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于HasChanges及DataRowState修改状态的几点疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40672) |
-- 作者:jnletao -- 发布时间:2013/9/26 13:17:00 -- [求助]关于HasChanges及DataRowState修改状态的几点疑问 我用的外部数据库MSSQL2000,新手,对foxtable及数据库有些概念不太清楚,请大能解惑! 以下问题也可能比较零乱,不过都是在实际操作时想到的,请大能海涵! ===================================================================================== 1,HasChanges的作用范围 帮助说明:【逻辑型,判断DataTable的数据是否已经被修改。】 疑问1-1。请问这个修改状态是相对项目而言,还是相对外部数据库? 意思是假设 对于表A的一条记录,如果我本地只是查看,而另一用户在做修改操作,那么我本地查看时状态HasChanges是True还是false 解答请填这里:本地 ----------------------------------------------------------------- 疑问1-2。HasChanges是针对当前行状态,还是所有行状态? 意思是假设 对于表A,第一条记录作了修改没保存,而我当前查看的是第二条记录,那么我在关闭窗体时做状态检测,HasChanges是True还是false 解答请填这里:所有行 ----------------------------------------------------------------- 2,RowState的作用范围 帮助说明:【返回行的状态。行状态是一个DataRowState型枚举,包括以下值:Added Modified Unchanged Detached】 疑问2-1。请问这个行状态是相对tables而言,还是相对datatables? 解答请填这里:RowState是DataRow的属性,Table只是显示,所有数据都在DataTable ----------------------------------------------------------------- 疑问2-2. 假设 在窗体里对某条记录要做修改,关闭时要检测此条记录是否被改动了, 是用RowState还是HasChanges ? RowState与HasChanges有什么区别? 解答请填这里:RowState ----------------------------------------------------------------- 疑问2-3.Reject与RejectChanges()的区别与作用范围 接上题,如果关闭时让用户选择是保存记录还是撤销记录,该用Reject还是RejectChanges()? Reject与RejectChanges()的区别与作用范围是什么? 解答请填这里:你要撤销行的修改,就执行这一行的Reject,你要撤销某个表的全部修改,就执行这个表的Rejectchanges ----------------------------------------------------------------- 疑问2-4.它们撤销的本地修改记录,还是数据库记录? 意思是 对于同一条记录,我本地在改,另一用户也在修改,修改的可能是同一字段,也可能是不同字段, ---我撤销的是我做的修改,还是所有用户做的修改? ---撤销只是当前记录,还有所有已修改未保存的记录? 解答请填这里:撤销的当然是本地 ----------------------------------------------------------------- [此贴子已经被作者于2013-9-30 17:45:40编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2013/9/26 14:46:00 -- 1、本地
建议你实际测试一下,加深印象。
[此贴子已经被作者于2013-9-26 14:46:42编辑过]
|
-- 作者:jnletao -- 发布时间:2013/9/26 14:47:00 -- |
-- 作者:jspta -- 发布时间:2013/9/26 14:51:00 -- 简单说下,这些是针对项目加载的表 haschange和Rejectchange针对表, rowsstatus和reject是针对行的,
多个用户操作,同时修改,这种判断是无效的,因为是针对加载后的。
|
-- 作者:狐狸爸爸 -- 发布时间:2013/9/26 14:53:00 -- 是的 |
-- 作者:jnletao -- 发布时间:2013/9/26 14:56:00 -- 以下是引用jspta在2013-9-26 14:51:00的发言: 简单说下,这些是针对项目加载的表 haschange和Rejectchange针对表, rowsstatus和reject是针对行的,
多个用户操作,同时修改,这种判断是无效的,因为是针对加载后的。
那在网络多用户中如何 有效判断? |
-- 作者:狐狸爸爸 -- 发布时间:2013/9/26 15:02:00 -- 不能判断。 |
-- 作者:狐狸爸爸 -- 发布时间:2013/9/26 15:03:00 -- 不过可以看看:
http://www.foxtable.com/help/topics/2368.htm
|
-- 作者:hanxuntx -- 发布时间:2013/9/26 15:54:00 -- 这个是新增的属性么? |
-- 作者:Bin -- 发布时间:2013/9/26 16:06:00 -- 一直都有的呢. |