我已经建立了一个用户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