【问题标题】:SoapUI NG Pro - Executing an UPDATE script in SoapUI using GroovySoapUI NG Pro - 使用 Groovy 在 SoapUI 中执行更新脚本
【发布时间】:2017-02-17 20:39:31
【问题描述】:

我需要能够执行更新 SQL 脚本,但它不起作用

这是我用作参考的网站的链接: https://groovyinsoapui.wordpress.com/tag/sql-eachrow-groovy-soapui/

这是我最终编写的代码的格式(由于我所做工作的性质,我无法提供我编写的确切脚本)

import groovy.sql.Sql

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
groovyUtils.registerJdbcDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver")

def connectString = "jdbc:microsoft:sqlserver://:;databaseName=?user=&password="

sql = Sql.newInstance(connectString)  // TEST YOUR CONNECT STRING IN A SQL BROWSER

sql.executeUpdate("UPDATE TABLE SET COLUMN_1 = 'VALUE_1' WHERE COLUMN_2 = 'VALUE_2'")

我得到的回应是:

Script-result: 0

我也试过用:

sql.execute("UPDATE TABLE SET COLUMN_1 = 'VALUE_1' WHERE COLUMN_2 = 'VALUE_2'")

返回以下响应:

Script-result: false

【问题讨论】:

标签: sql-server jdbc groovy soapui


【解决方案1】:

从你所说的看来,没有行有COLUMN_2 = 'VALUE_2',所以更新的行数是0。

我会首先在 Management Studio 上检查该声明以确保。

【讨论】:

  • 当我将查询更改为:sql.execute """ SELECT * FROM TABLE WHERE COLUMN_1 = 'VALUE_2' """ 我得到:Script-result: true
  • 试试sql.eachRow(" SELECT * FROM TABLE WHERE COLUMN_1 = 'VALUE_2' "){println(it)},看看你会得到什么。
  • 似乎没有发生任何事情。根本没有消息。当我在 SQL Server 中执行以下操作时,我得到了预期的结果:SELECT * FROM TABLE WHERE COLUMN_1 = 'VALUE_2'
  • 所以有 0 行符合您的条件。尝试使用您知道有结果的查询...如果您的表不是太大,请尝试不使用where
  • 肯定有一条记录符合我指定的条件:SELECT * FROM TABLE WHERE COLUMN_1 = 'VALUE_2' 我已经直接在 SQL Server 和 Soap 中验证了它,使用:def res = sql.firstRow("SELECT * FROM TABLE WHERE COLUMN_1 = 'VALUE_2'")
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多