如何将存储过程从MSSQL调用为grails

时间:2013-07-24 18:48:30

标签: sql-server grails stored-procedures

我有一个可行的存储过程,它根据where子句进行选择。但是,当我尝试从我的grails应用程序调用它时,我得到错误说索引1超出范围。我的代码如下

class SQLTestController {

    def dataSource

    def index() {

        Sql sql = new Sql(dataSource)
       def result =  sql.call("SelectFromTemp","Test")

               [result:result]

    }

我希望将返回的值作为结果传递,然后在我的视图中显示它。 “SelectFromTemp”是我的程序名称,我正在通过参数“Test”我的sp是

    SelectFromTemp(
@headertestcase varchar(max)
)
AS
 SET NOCOUNT ON;
Select * from dbo.tempTable where HeaderTestCase=@headertestcase

(尝试使用http://groovy.codehaus.org/Database+features提到的建议)

sql.call '{call SelectFromTemp(?)}', ['Test', Sql.VARCHAR], { dwells ->
println dwells // 

}

1 个答案:

答案 0 :(得分:2)

您可以查看Groovy Documentation有关“存储过程支持”的信息。例如:

sql.call '{call Hemisphere(?, ?, ?)}', ['Guillaume', 'Laforge', Sql.VARCHAR], { dwells ->
    println dwells // => Northern Hemisphere
}