2016-10-05 18 views
1

データベースからテーブルにアクセスしようとしています。まず、データベースの接続をチェックして、それが機能しました。それから私はクローズド・データベースをチェックし、それはうまくいった。私はテーブルからいくつかの項目を選択し、eachrawコマンドを使用してそれらを印刷しようとした後。GroovyでMSSQL Selectを使用する方法

私は、エラーの下に取得しています:

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() 

    } 
+0

ありがとうございます。 – user3174886

+1

'eachrow'は大文字と小文字を区別し、小文字にします。代わりに 'eachRow'で確認していただけますか? – Rao

+0

私はそれをチェックしました。今、私は 'いいえそのようなプロパティを取得しています:それはクラス:Script30' – user3174886

答えて

3

方法はeachRow、ノーeachrowで、あなたはクロージャ内の行の変数名を指定した場合、 「それ」の代わりに「行」を使用する必要があります。 コードは次のようになります。

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

それは働いた。ありがとう。 – user3174886

+0

あなたは大歓迎です! – quindimildev

関連する問題