我已經建立了一個用戶DSN ODBC數據源在WinXP(版本:Excel中97-2000)用於一個非常簡單的Excel電子表格:Groovy腳本掛
A_NUMBER A_DATE A_STRING
1001 10/1/2012 Red
1002 10/2/2012 Green
1003 10/3/2012 Blue
當我運行下面的Groovy腳本(Groovy的版本: 1.7.8 JVM:1.6.0_10)來讀取數據
import groovy.sql.Sql
def static main(def args) {
def dbParameters = [url: 'jdbc:odbc:mySpreadSheet', user:'', password:'', driver: 'sun.jdbc.odbc.JdbcOdbcDriver']
def sql = Sql.newInstance(dbParameters)
sql.eachRow('select * from [Sheet1$]') { row ->
println "${row.A_NUMBER} ${row.A_DATE} ${row.A_STRING}"
}
sql.close()
println "done???"
}
它產生以下輸出:
1001.0 2012-10-01 00:00:00.0 Red
1002.0 2012-10-02 00:00:00.0 Green
1003.0 2012-10-03 00:00:00.0 Blue
done???
但它從未出口小號!
我試圖從Windows運行它命令提示符和一個cygwin bash shell,然後在這兩種情況下,它掛起,直到我用CTRL-C殺死
我可以通過添加
強制腳本退出throw new RuntimeException("force exit")
之後的println,但看起來非常極端。
任何想法爲什麼腳本掛?
您是否嘗試過不使用「def static main」並將所有代碼放在方法之外? – djangofan
是的。同樣的結果。也試圖讓它成爲一個真正的課堂,並在主體中創建一個新的實例。沒有運氣:( – klassek
我也「試圖關閉和重新啓動」,並重新創建ODBC數據源。 – klassek