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
}
相关推荐
canonical_entropy1 天前
Nop平台架构白皮书:一个基于广义可逆计算理论的软件构造体系评估
后端·低代码·领域驱动设计
jnpfsoft2 天前
低代码视图真分页实操:API/SQL 接口配置 + 查询字段避坑,数据加载不卡顿
前端·低代码
NocoBase2 天前
华数传媒用 NocoBase 快速搭建 AI 多模态研发平台
人工智能·低代码·开源
xhload3d2 天前
WebGL/Canvas 内存泄露分析
低代码·3d·html5·webgl·数字孪生·可视化·软件开发·工业互联网·内存泄漏·轻量化·技术应用·hightopo
踩着两条虫2 天前
VTJ.PRO低代码快速入门指南
前端·低代码
赵大碗3 天前
Joker 智能开发平台-组件开发
低代码
NocoBase3 天前
11 个在 GitHub 上最受欢迎的开源无代码 AI 工具
低代码·ai·开源·github·无代码·ai agent·airtable·内部工具·app builder
yinmaisoft4 天前
低代码新建表单实操:纯表单 / 列表表单配置 + 表名避坑
低代码
ZKNOW甄知科技6 天前
客户案例 | 派克新材x甄知科技,构建全场景智能IT运维体系
大数据·运维·人工智能·科技·低代码·微服务·制造