use of org.h2.command.dml.Set in project h2database by h2database.
the class JdbcResultSet method updateBlob.
/**
* Updates a column in the current or insert row.
*
* @param columnIndex (1,2,...)
* @param x the value
* @param length the length
* @throws SQLException if the result set is closed or not updatable
*/
@Override
public void updateBlob(int columnIndex, InputStream x, long length) throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateBlob(" + columnIndex + ", x, " + length + "L);");
}
checkClosed();
Value v = conn.createBlob(x, length);
update(columnIndex, v);
} catch (Exception e) {
throw logAndConvert(e);
}
}
use of org.h2.command.dml.Set in project h2database by h2database.
the class JdbcResultSet method updateRow.
/**
* Updates the current row.
*
* @throws SQLException if the result set is closed, if the current row is
* the insert row or if not on a valid row, or if the result set
* it not updatable
*/
@Override
public void updateRow() throws SQLException {
try {
debugCodeCall("updateRow");
checkUpdatable();
if (insertRow != null) {
throw DbException.get(ErrorCode.NOT_ON_UPDATABLE_ROW);
}
checkOnValidRow();
if (updateRow != null) {
UpdatableRow row = getUpdatableRow();
Value[] current = new Value[columnCount];
for (int i = 0; i < updateRow.length; i++) {
current[i] = get(i + 1);
}
row.updateRow(current, updateRow);
for (int i = 0; i < updateRow.length; i++) {
if (updateRow[i] == null) {
updateRow[i] = current[i];
}
}
Value[] patch = row.readRow(updateRow);
patchCurrentRow(patch);
updateRow = null;
}
} catch (Exception e) {
throw logAndConvert(e);
}
}
use of org.h2.command.dml.Set in project h2database by h2database.
the class JdbcResultSet method updateBinaryStream.
/**
* Updates a column in the current or insert row.
*
* @param columnIndex (1,2,...)
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed or not updatable
*/
@Override
public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateBinaryStream(" + columnIndex + ", x, " + length + "L);");
}
checkClosed();
Value v = conn.createBlob(x, length);
update(columnIndex, v);
} catch (Exception e) {
throw logAndConvert(e);
}
}
use of org.h2.command.dml.Set in project h2database by h2database.
the class JdbcResultSet method updateClob.
/**
* Updates a column in the current or insert row.
*
* @param columnLabel the column label
* @param x the value
* @throws SQLException if the result set is closed or not updatable
*/
@Override
public void updateClob(String columnLabel, Clob x) throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateClob(" + quote(columnLabel) + ", x);");
}
checkClosed();
Value v;
if (x == null) {
v = ValueNull.INSTANCE;
} else {
v = conn.createClob(x.getCharacterStream(), -1);
}
update(columnLabel, v);
} catch (Exception e) {
throw logAndConvert(e);
}
}
use of org.h2.command.dml.Set in project h2database by h2database.
the class JdbcResultSet method getNClob.
/**
* Returns the value of the specified column as a Clob.
*
* @param columnIndex (1,2,...)
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
@Override
public NClob getNClob(int columnIndex) throws SQLException {
try {
int id = getNextId(TraceObject.CLOB);
if (isDebugEnabled()) {
debugCodeAssign("NClob", TraceObject.CLOB, id, "getNClob(" + columnIndex + ")");
}
Value v = get(columnIndex);
return v == ValueNull.INSTANCE ? null : new JdbcClob(conn, v, id);
} catch (Exception e) {
throw logAndConvert(e);
}
}
Aggregations