From 36276e96db8e9633f4bd68257e4c80fa0efe8c1d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 02 十月 2024 22:40:26 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/utils/utils-custom.js |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 3d88af4..0aa4345 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -4799,7 +4799,7 @@
     // SELECT @appkey@,'sPC_Get_TableData',1,@menuname@,@UserID@,@username@,@fullname@,@SessionUid@,@LoginUID@
     let sql = ''
 
-    if (item.setting.transact === 'true') {
+    if (item.setting.transact === 'true' && !/BEGIN\s+TRY\s+begin\s+TRAN/.test(_customScript)) {
       sql = `/* ${item.setting.$name} */
         BEGIN TRY 
         begin TRAN
@@ -4808,9 +4808,38 @@
         arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}'
       `
 
+      let e_sql = `select ${_columns.map(col => col.field).join(',')} from (select ${_columns.map(col => /date/ig.test(col.datatype) ? `'1949-10-01' as ${col.field}` : `'0' as ${col.field}`).join(',')}) a where ${item.setting.primaryKey || 'ID'} != '0'`
+      if (DateCount) {
+        e_sql += `
+        select 0 as total
+        `
+      }
+
       _tailScript = `${_tailScript}
         select @ErrorCode as ErrorCode,@retmsg as retmsg
-        ${callback}
+
+        COMMIT TRAN
+        set NOCOUNT ON
+        RETURN
+        END TRY
+        BEGIN CATCH
+          ROLLBACK TRAN
+          DECLARE @ErrorMessage NVARCHAR(4000);
+          DECLARE @ErrorSeverity INT;
+          DECLARE @ErrorState INT;
+
+          set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50))
+          set @retmsg=ERROR_MESSAGE();
+          select @ErrorMessage=ERROR_MESSAGE(), @ErrorSeverity=ERROR_SEVERITY(), @ErrorState=ERROR_STATE();
+
+          RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState);
+        END CATCH
+
+        aaa:
+        ${e_sql}
+        select @ErrorCode as ErrorCode,@retmsg as retmsg
+        GOTO_RETURN:
+          ROLLBACK TRAN
       `
     } else {
       sql = `/* ${item.setting.$name} */

--
Gitblit v1.8.0