zoukankan      html  css  js  c++  java
  • 行状态,行版本

    datarow.rowstate:

    当新建一行的时候,状态为Detached,不属于任何表,把它添加到表中后,状态为Added,这时候你修改这条数据,他的状态还是Added,

      把它添加到表中后,状态为Added

    0 如果    这时候你修改这条数据,他的状态还是Added,

    1 如果   如果再去调用delete(),他的状态又变会Detached,而不是delete状态。

    2 如果   这个时候调用 acceptchanges().它的状态为Unchanged。

    3 如果  这个时候调用  RejectChanges()它的状态为Detached,注意,RejectChanges() 方法总是将其状态调整为上一次调用acceptchanges().之后的状态

               即:如果 RowState 是“已删除”或“已修改”,则该行恢复为其以前的值,RowState 变成“未更改”(Unchanged)。如果 RowState 是“已添加”,则该行将被移除。 

    如果一个行的状态是Unchanged:

    1 如果修改数据,状态为Modified,

    2 如果从1中的状态在去调用RejectChanges(),当然变为Unchanged了;

    3 如果从1的状态去调用acceptchanges(),当然也是Unchanged();

    4如果从3的状态去调用 delete,则状态为Deleted,如果调用RejectChanges(),当然变为Unchanged了;

    5 如果从Deleted状态调用delete(),则变为Detached。

    从以上总结出rowstate的规律:

    行版本详解:

    一个Table主要布局:

    restrict

    original

    current

    Proposed

    relation

    对于dataset而言,行版本能够解决的问题是丢失修改,从数据库加载数据到DATASET中时,默认都有original,current两个版本,

    没有Proposed版本,当要修改一行的数据的时候,调用beginedit().这时候会把current拷贝到Proposed版本中,然后修改数据是

    在Proposed 中进行的,在给列赋值的时候会发生列校验,如果调用cancleedit(),会把Proposed版本删掉,调用endedit()的时候

    会把Proposed版本拷贝到current版本中,注意,在从Proposed拷贝到current中会发生行校验,如果调用acceptchanges()这个

    时候会把current版本覆盖到original版本中去,如果调用rejectchanges()会把original版本拷贝到current版本,再来说说,行版本

    和行状态的转换关系:

    判断是不是modified,如果original版本不等于current版本就表明修改过了

    判断是unchanged,如果original版本等于current版本就表明是无变化的

    判断是Added,如果只有current版本,没有original版本就表明是增加的

    判断Deleted,只有origianl没有current版本,就表明是删除状态了。

    在modied状态时候,如果调用acceptchanges(),C版本拷贝到O版本,如果调用rejectchanges,会把O拷贝到C

    在刚创建一个新行的时候处于Detached,只有Proposed版本,调用add,会把P版本拷贝到C版本,如果调用reject会变成Detached状态,

    在deleted 状态时候,调用acceptchages(),状态会变成Detached,

  • 相关阅读:
    SpringCloud Ribbon实现负载均衡,SpringCloud Ribbon自定义策略
    springCloud zookeeper整合,Java Zookeeper微服务注册中心整合
    SpringCloud Eureka安装和使用,SpringCloud使用Eureka作为服务注册中心
    Linux yum安装Consul服务中心,Centos7在线安装consul
    SpringCloud consul安装和使用,Windows Consul安装和使用,Java consul服务中心安装和使用
    哔哩哔哩视频下载到电脑,bilibili UWP下载的视频重命名,blibli视频下载到电脑
    elasticsearch kibana安装和配置
    elasticsearch安装和配置,elasticsearch启动报错:can not run elasticsearch as root
    cmd打开当前文件所在目录,cmd进入当前文件目录,cmd进入指定目录
    京东到家 首页 笔记
  • 原文地址:https://www.cnblogs.com/qianyz/p/1850529.html
Copyright © 2011-2022 走看看