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 天前
QuickAPI 在系统数据 API 化中的架构选型与集成
数据库·sql·低代码·微服务·架构
麦聪聊数据3 天前
快速将Oracle数据库发布为 API:使用 QuickAPI 实现 SQL2API
数据库·sql·低代码·oracle·restful
无代码专家3 天前
零代码平台 2026 发展报告:轻流 AI 重塑业务流程管理
人工智能·低代码
JEECG低代码平台3 天前
JeecgBoot低代码 AI工作流知识库节点:构建企业私域RAG问答的核心引擎
人工智能·低代码
麦聪聊数据3 天前
利用实时数据管道与 SQL2API 重构企业自动化审计架构
数据库·sql·低代码
麦聪聊数据3 天前
重构开放生态:利用 QuickAPI 跨越遗留系统与敏捷交付的工程实践
数据库·sql·低代码·restful
摩尔元数4 天前
2026年PLC控制器工厂选MES,厂商推荐
人工智能·低代码·制造·mes
麦聪聊数据4 天前
SQL 到 API 转化过程中的版本控制与灰度发布机制
数据库·sql·低代码·微服务
@PHARAOH4 天前
HOW - 前端页面低代码 Schema 驱动最小范式
前端·低代码
低代码布道师4 天前
MBA培训管理系统低代码实战指南
低代码