[英]How to cancel a statement with derby?
I have a very long sql statement, with java derby database, and I should want provide to the user a "cancel" things. 我有一个很长的sql语句,带有java derby数据库,我应该向用户提供一个“取消”的东西。 But I get :
但我得到:
Caused by: java.sql.SQLException: Feature not implemented: cancel.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
So how can I do something like that with derby ? 那么我怎么能用德比做那样的事呢?
Thanks. 谢谢。
There is no next loop in my request ; 我的请求中没有下一个循环; here is my big sql call:
这是我的大sql调用:
"DELETE FROM TABLE "
+ "WHERE "
+ "REF_TICKET IN
+ "(SELECT NTICKET FROM OTHER_TABLE WHERE "
+ "REF_OPEN IN
+ (SELECT OPEN FROM AGAIN_ANOTHER_TABLE WHERE "
+ "{fn TIMESTAMPDIFF( SQL_TSI_DAY, TIMECLOSE, CURRENT_DATE)} > 365))");
So it's all in one statement. 所以这一切都在一个声明中。
It's usually not the ExecuteQuery() call that takes very long, but the ResultSet.next() loop that runs for a long time, fetching all the rows. 它通常不是ExecuteQuery()调用需要很长时间,但ResultSet.next()循环运行很长时间,获取所有行。 So just check for the user's cancel request during your row-fetching loop, say, every hundred rows or so.
因此,只需在行获取循环期间检查用户的取消请求,例如每100行左右。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.