From 47fb26c2fbebd4f1d4db11be3480fad3f2b409da Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 08 十月 2024 17:42:09 +0800 Subject: [PATCH] 2024-10-08 --- src/utils/utils-custom.js | 45 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index b95f217..a219755 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -3083,7 +3083,7 @@ if (['select', 'link', 'multiselect', 'checkcard', 'radio'].includes(cell.type) && cell.resourceType === '1' && cell.dataSource) { let msg = getFormSql(cell, '鎼滅储') - sqls.push({uuid: cell.uuid, type: 'sForm', ...msg}) + sqls.push({uuid: md5(item.uuid + cell.uuid), type: 'sForm', ...msg}) } }) } @@ -4798,8 +4798,14 @@ // INSERT INTO s_paas_api_log (appkey,api_name,api_count,menuname,createuserid,createuser,createstaff,cdefine1,cdefine2) // SELECT @appkey@,'sPC_Get_TableData',1,@menuname@,@UserID@,@username@,@fullname@,@SessionUid@,@LoginUID@ let sql = '' + 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 + ` + } - 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 @@ -4810,7 +4816,29 @@ _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} */ @@ -4818,8 +4846,17 @@ arr_field='${arr_field}',tabid='${tabid}',parid='${parid}',sub_name='${sub_name}',sub_field='${sub_field}' ` + let tail = 'aaa:' + if (/\sgoto\s+aaa([^0-9a-z_]|$)/ig.test(_customScript) && !/BEGIN\s+TRY\s+begin\s+TRAN/.test(_customScript)) { + tail = `if 1=2 + begin + aaa: + ${e_sql} + end` + } + _tailScript = `${_tailScript} - aaa: + ${tail} select @ErrorCode as ErrorCode,@retmsg as retmsg ` } -- Gitblit v1.8.0