Search in sources :

Example 86 with Set

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);
    }
}
Also used : Value(org.h2.value.Value) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Example 87 with Set

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);
    }
}
Also used : Value(org.h2.value.Value) UpdatableRow(org.h2.result.UpdatableRow) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Example 88 with Set

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);
    }
}
Also used : Value(org.h2.value.Value) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Example 89 with Set

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);
    }
}
Also used : Value(org.h2.value.Value) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Example 90 with Set

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);
    }
}
Also used : Value(org.h2.value.Value) DbException(org.h2.message.DbException) SQLException(java.sql.SQLException)

Aggregations

SQLException (java.sql.SQLException)107 DbException (org.h2.message.DbException)80 PreparedStatement (java.sql.PreparedStatement)78 Connection (java.sql.Connection)70 Statement (java.sql.Statement)63 ResultSet (java.sql.ResultSet)62 Value (org.h2.value.Value)51 JdbcConnection (org.h2.jdbc.JdbcConnection)48 SimpleResultSet (org.h2.tools.SimpleResultSet)36 HashSet (java.util.HashSet)28 Column (org.h2.table.Column)24 Savepoint (java.sql.Savepoint)23 ValueString (org.h2.value.ValueString)21 IOException (java.io.IOException)20 Random (java.util.Random)17 Expression (org.h2.expression.Expression)16 Task (org.h2.util.Task)16 ExpressionColumn (org.h2.expression.ExpressionColumn)14 ValueExpression (org.h2.expression.ValueExpression)13 IndexColumn (org.h2.table.IndexColumn)13