Axapta ttsbegin、ttscommit和~&引用;操作人员

Axapta ttsbegin、ttscommit和~&引用;操作人员,axapta,x++,Axapta,X++,我正在学习X++,我有两个问题: 我不明白ttsbegin和ttscommit的效用是什么! 我必须在哪里使用它,它的用途是什么 此运算符“~”的实用程序是什么?使用ttsbegin当您要访问表中的数据时,它会通知系统将发生数据库事务。当您更新/保存行中的数据时,必须调用ttscommit,否则更改将恢复为原始值,与在C#/VB中使用数据集类似,您必须告诉数据集将所有更改提交到数据库 ttsbegin类似于BEGIN SQL语句,TTSCOMIT类似于COMMIT SQL语句 您必须同时使用它

我正在学习X++,我有两个问题:

我不明白ttsbegin和ttscommit的效用是什么! 我必须在哪里使用它,它的用途是什么


此运算符“~”的实用程序是什么?

使用ttsbegin当您要访问表中的数据时,它会通知系统将发生数据库事务。
当您更新/保存行中的数据时,必须调用ttscommit,否则更改将恢复为原始值,与在C#/VB中使用数据集类似,您必须告诉数据集将所有更改提交到数据库

ttsbegin类似于BEGIN SQL语句,TTSCOMIT类似于COMMIT SQL语句

您必须同时使用它们:
ttsbegin
“在此处添加代码以检索数据和操作数据”
TTS委员会

您可以大声嵌套ttsbegin和ttscommit,但要注意以上的多次使用,因为不关闭一个ttsbegin会导致很多事情出错,我发现只调用一次ttsbegin和ttscommit就足够了

至于“~”,在为Axapta(Microsoft Dynamics AX)编写X++代码的20年中,我从未使用过它

ttsBegin
:标记事务的开始。这确保了数据的完整性,并保证在事务结束之前执行的所有更新(通过
ttsCommit
ttsAbort
)都是一致的(全部或无)

ttsCommit
:标记事务的成功结束。这将结束并提交一个事务。MorpX保证提交的事务将根据意图执行

注意

通常最好使用异常处理而不是
ttsAbort
。throw语句自动中止当前事务

这意味着您将以
ttsBegin
开始事务,并以
ttsCommit
结束事务(如果成功),或引发异常(如果事务失败)。文档中不清楚,但事务意味着对应用程序表的操作

当您希望确保应用程序表上的读取或更新操作不会因同时发生的其他表操作而不一致时,可以使用它们

参见同一链接中的示例

不是按位的,它以整数翻转每一位。例如,(假设32位整数):
~0
FFFFFFFF
(现在每个位都是1),
~4
fffffff b
(十六进制表示)