Могут ли setFetchSize и setObject работать вместе для драйвера jConnect?
Я программирую на базе данных Sybase IQ и получаю странную ошибку при объединении setFetchSize вместе с setObject.
- версия сервера sybase IQ: 16.0
- драйвер jdbc: jconn4 16.0
- Ява 8
Допустим, у нас есть следующий фрагмент кода:
String sql = "SELECT * FROM demo.sakila.actor WHERE last_update > ? ORDER BY last_update ASC";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setObject(1, "2007-1-1 00:00:00");
pstmt.setFetchSize(100);
pstmt.executeQuery();
Который заканчивается ошибкой:
java.sql.SQLException: JZ0SA: Prepared Statement: Input parameter not set, index: 0.
at com.sybase.jdbc4.jdbc.ErrorMessage.raiseError(ErrorMessage.java:762)
at com.sybase.jdbc4.tds.TdsParam.prepareForSend(TdsParam.java:225)
at com.sybase.jdbc4.jdbc.ParamManager.checkParams(ParamManager.java:1193)
at com.sybase.jdbc4.tds.TdsCursor.tdsCursor(TdsCursor.java:731)
at com.sybase.jdbc4.tds.TdsCursor.open(TdsCursor.java:321)
at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:2365)
at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeQuery(SybPreparedStatement.java:272)
Похоже, это вызвано отсутствием параметра. Если я уберу строку установки fetchSize, программа работает без проблем.
Кто-нибудь знает, это ожидаемое поведение?