AStar低代码平台RpcServiceBase的应用:客户端事务管理

由于AStar平台是基于RPC协议与AStar后端服务进行通讯,而又非常接近常规BS的编码方式,直接写SQL即可对数据库进行操作,那么如果有若干个访问需要在同一事务中进行的,如何处理?比如先生成临时表,再对临时表进行若干统计输出多个结束集。

下面是个例子:

csharp 复制代码
String trxId = await RpcService.Lock(Session.Account); //先根据账套锁定返回交易id
try
{
   await RpcService.BeginTrans(trxId);  //开始事务
   try
   {
      await dbf10(sql_rpt_m1_create_tm, parm, trxId); //所有rpc远程访问都基于这个交易trxId
      await RpcService.Query("select * from zb_", parm, dataSetd.Tables["rpt_sum_1_tm"], true, trxId: trxId);
      await RpcService.Query(sql_rpt_m1_td, parm, dataSetd.Tables["rpt_sum_1_td"], true, trxId: trxId);
   }
   finally
   {
      await RpcService.Rollback(trxId); //因为这是报表,所以回滚即可,如果是更新操作,要用RpcService.Commit
   }
}
finally
{
   await RpcService.Release(trxId); //最后要释放这个交易id
}
相关推荐
测试人社区—小叶子2 天前
低代码平台测试秘籍:OutSystems组件校验法则
运维·网络·人工智能·测试工具·低代码·自动化
葡萄城技术团队2 天前
活字格低代码平台:企业数字化转型的技术架构与实践剖析
低代码·架构
EdmondSung2 天前
B1 敏捷开发如何改善(下)
低代码·敏捷流程
NocoBase2 天前
6 个最佳开源 AI 仪表盘工具
低代码·开源·数据可视化
掉鱼的猫3 天前
Java 低代码平台的“动态引擎”:Liquor
java·低代码·groovy
带刺的坐椅3 天前
Java 低代码平台的“动态引擎”:Liquor
java·javascript·低代码·groovy·liquor
快乐非自愿3 天前
AI重构低代码开发:从“可视化编码”到“自然语言编程”(技术解析+实战案例)
人工智能·低代码·重构
ZKNOW甄知科技3 天前
低代码 ITSM 知识管理平台:驱动企业数智化运维的新引擎
运维·服务器·人工智能·低代码·网络安全·自动化