Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在Groovy中使用MSSQL Select_Sql Server_Groovy_Soapui - Fatal编程技术网

Sql server 如何在Groovy中使用MSSQL Select

Sql server 如何在Groovy中使用MSSQL Select,sql-server,groovy,soapui,Sql Server,Groovy,Soapui,我正在尝试从数据库访问该表。首先,我检查了数据库的连接,它工作了。然后我检查了close db,它工作了。在我尝试从表中选择几个项目并使用eachraw命令打印它们之后 我得到以下错误: Wed Oct 05 07:26:01 EDT 2016:INFO:No signature of method: groovy.sql.Sql.eachrow() is applicable for argument types: (java.lang.String, Script26$_run_closur

我正在尝试从数据库访问该表。首先,我检查了数据库的连接,它工作了。然后我检查了close db,它工作了。在我尝试从表中选择几个项目并使用eachraw命令打印它们之后

我得到以下错误:

Wed Oct 05 07:26:01 EDT 2016:INFO:No signature of method: groovy.sql.Sql.eachrow() is applicable for argument types: (java.lang.String, Script26$_run_closure1) values: [SELECT Type,Description FROM A.dbo.Type, ...]
Possible solutions: eachRow(java.lang.String, groovy.lang.Closure), eachRow(groovy.lang.GString, groovy.lang.Closure), eachRow(java.lang.String, groovy.lang.Closure, groovy.lang.Closure), eachRow(java.lang.String, java.util.List, groovy.lang.Closure), eachRow(java.lang.String, java.util.Map, groovy.lang.Closure), eachRow(java.util.Map, java.lang.String, groovy.lang.Closure)
这是我的代码:

    import groovy.sql.Sql


    try{

    def dbURL="jdbc:sqlserver://1.1.2.1:1433;databaseName=A"
    def dbUsername="sa"
    def dbPassword="password"
    def dbDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"

    def db = Sql.newInstance(dbURL,dbUsername,dbPassword,dbDriver)

    def q1 = "SELECT Type,Description FROM A.dbo.Type"


    db.eachrow(q1){row ->
       log.info "${it.toString().Description}"
    }



   }catch (Exception e){
       log.info "Some db error"
       log.info e.getMessage()

   }finally{

   db.close()

   }

方法是eachRow,不是eachRow,如果在闭包中指定行变量名,则必须使用“row”而不是“it”。 因此,您的代码应该如下所示:

db.eachRow(q1){row ->
       log.info "${row.description}"
}

感谢@Rao的更新。
每一行
都区分大小写,您可以使用小写。你能改用
来检查吗?我检查过了。现在我得到了“No-this-property:it for class:Script30”,而且,我必须注释掉db.close(),否则它会在
try
块之前给出错误(非异常)Define
db