From f1320e33338514c032cf5e9e74c08b4ba97b18f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Tue, 26 Aug 2025 17:39:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E8=AF=AD=E5=8F=A5=E4=BC=98?= =?UTF-8?q?=E5=8C=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recon/formplugin/TestDBFormPlugin.java | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/main/java/shkd/repc/recon/formplugin/TestDBFormPlugin.java b/main/java/shkd/repc/recon/formplugin/TestDBFormPlugin.java index 1649899..4134bdb 100644 --- a/main/java/shkd/repc/recon/formplugin/TestDBFormPlugin.java +++ b/main/java/shkd/repc/recon/formplugin/TestDBFormPlugin.java @@ -14,22 +14,42 @@ public class TestDBFormPlugin extends AbstractFormPlugin { @Override public void afterDoOperation(AfterDoOperationEventArgs e) { super.afterDoOperation(e); - if("qeug_btnok".equals(e.getOperateKey())){ - String dbnum = (String) this.getModel().getValue("qeug_dbnum");//标识 - //String sql = (String) this.getModel().getValue("qeug_sqls");//sql语句-多行文本 - String sql2 = (String) this.getModel().getValue("qeug_largetextfield");//sql语句-大文本 - try{ - //DB.update(DBRoute.of(dbnum), sql,null); - String[] sqlss = sql2.split(";");//解决多个更新语句一起执行失败的问题 + if ("qeug_btnok".equals(e.getOperateKey())) { + String dbnum = (String) this.getModel().getValue("qeug_dbnum"); // 标识 + String sql2 = (String) this.getModel().getValue("qeug_largetextfield_tag"); // sql语句-大文本 + + // 检查SQL文本是否为空 + if (sql2 == null || sql2.trim().isEmpty()) { + this.getView().showMessage("SQL语句不能为空"); + return; + } + + try { + String[] sqlss = sql2.split(";"); + int successCount = 0; + for (String sql : sqlss) { - DB.update(DBRoute.of(dbnum), sql,null); - logger.info("执行语句:"+sql); + // 跳过空语句 + if (sql == null || sql.trim().isEmpty()) { + continue; + } + + // 执行SQL语句 + DB.update(DBRoute.of(dbnum), sql, null); + logger.info("执行语句:" + sql); + successCount++; } - }catch(Exception ex){ - this.getView().showMessage("执行失败:" + ex.getMessage()); + if (successCount > 0) { + this.getView().showSuccessNotification("成功执行 " + successCount + " 条语句"); + } else { + this.getView().showMessage("未执行任何有效SQL语句"); + } + + } catch (Exception ex) { + logger.error("SQL执行失败", ex); + this.getView().showMessage("执行失败: " + ex.getMessage()); } - this.getView().showSuccessNotification("执行成功"); } } } \ No newline at end of file