【发布时间】:2016-02-02 21:13:09
【问题描述】:
我使用 HSQLDB 和preparedStatements 很好,但是如果我在我的 SQL 语句中包含“SELECT TOP”或“ORDER BY”,当我调用 updateBoolean(或 UpdateInt 等)时,我会遇到异常:
java.sql.SQLException: attempt to assign to non-updatable column
此示例代码运行良好:
preparedStatement = connection.prepareUpdatable(
"SELECT " + MyTable.COL_ID + ", " +
MyTable.COL_READ +
" FROM " + MyTable.NAME +
" WHERE " + MyTable.COL_LOCAL +
" =? AND " + MyTable.COL_REMOTE +
" =?",
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
preparedStatement.setString(1, localAddress);
preparedStatement.setString(2, remoteAddress);
ResultSet rs = connection.query(preparedStatement);
if (rs.next())
{
rs.updateBoolean(MyTable.COL_READ, isRead);
rs.updateRow();
}
如果我将“SELECT”更改为“SELECT TOP”,则会出现异常。或者,如果我将其附加到 SQL 语句中:
" ORDER BY " + MyTable.COL_RECEIVED_TIMESTAMP + " DESC"
感谢您的帮助。
尼克B
【问题讨论】:
标签: hsqldb