2013-10-02 8 views
1

내 코드를 반환하기 전에 완료 될 때까지 기다리지 않고 그루비에서 SQL 실행하는 것은 기본적으로 :그것이

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

무슨 뜻인지 이해가 안됩니다. 실행중인 것은 insert 문입니다. 코드로 보여 주실 수 있습니까? –

+0

아마도 나는 오해하고 있습니다. 당신은'sql.execute()'를 먼저 실행하기를 원합니다, 맞습니까? 즉,'{}'내의 코드가 실행되고 있지 않다는 것을 의미합니까? – Brian

답변

2

execute은 첫 번째 결과가 ResultSet 인 경우에만 true를 반환하고, 그렇지 않으면 false를 반환합니다.

삽입물의 경우 부울 반환을 확인할 수 있습니다.

솔루션 :
executeInsert로 이동하여 사용 그루비 진실

당신은 순서가 당신의 실행을 가지고있는 것처럼 그것은 나에게 보이는
if(sql.executeInsert('insert into myTable values (value1, value2, ...)')){ 
.... 
} else { 
.... 
}