2013-10-02 28 views
1

我的代碼之前完成基本上是:SQL Groovy中執行不等到它返回

if (sql.execute('insert into myTable values (value1, value2, ...)') == true) { 
    run some other sql query doing analysis on myTable 
} 
else { 
    print "failure" 
} 

奇怪的是,我的發言會立即返回,並打印「失敗」。但是,我正在觀察桌子和插入件是否正常工作。

我真的很希望發生的事情是,在執行完插入行之後,它會在if塊內運行另一個查詢。發生了什麼/我該如何做到這一點?

+0

它看起來像你對我有你的執行亂序。你不能只運行'sql.execute()'然後運行'insert'? – Brian

+0

我不明白你的意思。它執行的東西是插入語句。你能用代碼告訴我嗎? –

+0

也許我誤解了......你想'sql.execute()'先運行,對不對?這就是說,你的意思是'{}'中的代碼沒有執行? – Brian

回答

2

execute僅在第一個結果是ResultSet時返回true,否則返回false。

在插入的情況下,我非常懷疑你將能夠檢查布爾返回。

解決方案:
圍棋與executeInsert和使用Groovy真理

if(sql.executeInsert('insert into myTable values (value1, value2, ...)')){ 
.... 
} else { 
.... 
}