C++ MVCC特性设置
接口
int SetCheckDataVersionPolicy(enum tagCHECKDATAVERSIONTYPE type);
适用命令字
- Replace
- Update
- Increase
- ListAddAfter
- ListDelete
- ListReplace
- ListDeleteBatch
设置规则
- CHECKDATAVERSION_AUTOINCREASE: 表示检测记录版本号,默认类型
- 如果class TcaplusServiceRecord的void SetVersion(IN int32_t iVersion)函数传入的参数iVersion的值<=0,则仍然表示不关心版本号不关注版本号;
- 如果class TcaplusServiceRecord的void SetVersion(IN int32_t iVersion)函数传入的参数iVersion的值>0,那么只有当该版本号与服务器端的版本号相同时,Replace, Update, Increase, ListAddAfter, ListDelete, ListReplace, ListDeleteBatch操作才会成功同时在服务器端该版本号会自增1
- NOCHECKDATAVERSION_OVERWRITE: 表示不检测记录版本号
- 如果class TcaplusServiceRecord的void SetVersion(IN int32_t iVersion)函数传入的参数iVersion的值<=0,则会把版本号1写入服务端的数据记录版本号(服务器端成功写入的数据记录的版本号最少为1);
- 如果class TcaplusServiceRecord的void SetVersion(IN int32_t iVersion)函数传入的参数iVersion的值>0,那么会把该版本号写入服务端的数据记录版本号
- NOCHECKDATAVERSION_AUTOINCREASE: 表示不检测记录版本号
- 将服务器端的数据记录版本号自增1,如果服务器端新写入数据记录则新写入的数据记录的版本号为1
特别注意
当SetCheckDataVersionPolicy设置为CHECKDATAVERSION_AUTOINCREASE,而SetResultFlag设置为2返回所有字段值时:
- Insert主键冲突,响应消息会返回最新记录;
- Increase/Replace/Update/ListDelete/ListReplace/ListDeleteBatch在版本号不正确出错时,响应消息会返回最新记录