From a181fc113d024ed34d6b488c65882961bd1de3f4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 02 六月 2020 19:00:57 +0800
Subject: [PATCH] 2020-06-02

---
 src/utils/utils.js |   39 +++++++++++++++++++++++----------------
 1 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 2cff539..dd981d9 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -67,10 +67,10 @@
       {key: 'alter', reg: /(^|\s)alter\s/ig},
       {key: 'truncate', reg: /(^|\s)truncate\s/ig},
       {key: 'if', reg: /(^|\s)if\s/ig},
-      {key: 'exec', reg: /exec/ig},
-      {key: 'OBJECT', reg: /object/ig},
-      {key: 'sys.', reg: /sys\./ig},
-      {key: 'kill', reg: /kill/ig}
+      {key: 'exec', reg: /(^|\s)exec(\s|\()/ig},
+      {key: 'OBJECT', reg: /(^|\s)object(\s|\()/ig},
+      {key: 'sys.', reg: /(^|\s)sys\./ig},
+      {key: 'kill', reg: /(^|\s)kill\s/ig}
     ]
 
     if (type === 'customscript') {
@@ -1051,10 +1051,15 @@
         datasource = '(' + datasource + ') tb'
       }
 
+      let _ID = '=@ID@'
+      if (btn.Ot === 'requiredOnce') {
+        _ID = ' in (select ID from  dbo.SplitComma(@ID@))'
+      }
+
       _sql += `
         /* 澶辨晥楠岃瘉 */
         select @tbid='', @ErrorCode='',@retmsg=''
-        select @tbid=${primaryKey} from ${datasource} where ${primaryKey} ='${primaryId}'
+        select @tbid=${primaryKey} from ${datasource} where ${primaryKey} ${_ID}
         If @tbid=''
         Begin
           select @ErrorCode='E',@retmsg='鏁版嵁宸插け鏁�'
@@ -1130,18 +1135,20 @@
       }
 
       verify.uniques.forEach(item => {
-        console.log(item)
-        // `鏈夊悓绫绘暟鎹獙璇侊細
-        // 涓庡敮涓�鎬ч獙璇佷竴鏍凤紝鍙互閫夊嚑涓瓧娈�
-        // Set @tbid=鈥欌��
+        let _primaryKey = item.field.split(',').includes(primaryKey) ? '' : ',' + primaryKey
+
+        _sql += `
+        /* 鍚岀被鏁版嵁楠岃瘉 */
+        Set @tbid=''
+
+        Select top 1 @tbid='X' from (select ${item.field}${_primaryKey},1 as n from ${datasource} ) tb  inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.${primaryKey}=sp.ID group by ${item.field} having sum(n)>1
         
-        // Select top 1 @tbid=鈥橷鈥� from (select 澶氫釜瀛楁閫楀彿鍒嗛殧,涓婚敭,1 an n from 鏁版嵁婧� ) tb  inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.涓婚敭=sp.ID group by 澶氫釜瀛楁閫楀彿鍒嗛殧 having sum(n)>1
-        
-        // If @tbid!=鈥欌��
-        // Begin
-        //     Set @errorcode=鈥橢鈥� ,Set @remsg=鈥欏涓瓧娈甸�楀彿鍒嗛殧 鍊间笉鍞竴鈥� goto aaa
-        // end
-        // `
+        If @tbid!=''
+        Begin
+          Set @ErrorCode='E' Set @retmsg='${item.fieldlabel} 鍊间笉鍞竴'
+          goto aaa
+        end
+        `
       })
     }
     

--
Gitblit v1.8.0