## org.hsqldb.jdbc
Class JDBCBlobClient

    java.lang.Object
      org.hsqldb.jdbc.JDBCBlobClient

All Implemented Interfaces:
  Blob

    public class JDBCBlobClient

extends Object
implements Blob

A wrapper for HSQLDB BlobData objects. Instances of this class are returnd by calls to ResultSet methods.

Since:
  1.9.0
Author:
  Fred Toussi (fredt@users dot sourceforge.net)

Constructor Summary
`JDBCBlobClient(org.hsqldb.SessionInterface session, org.hsqldb.types.BlobDataID blob)`

Method Summary
`void` `clearUpdates()`
`void` `free()` This method frees the `Blob` object and releases the resources that it holds.
`InputStream` `getBinaryStream()` Retrieves the `BLOB` value designated by this `Blob` instance as a stream.
`InputStream` `getBinaryStream(long pos, long length)` Returns an `InputStream` object that contains a partial `Blob` value, starting with the byte specified by pos, which is length bytes in length.
`org.hsqldb.types.BlobDataID` `getBlob()`
`byte[]` `getBytes(long pos, int length)` Retrieves all or part of the `BLOB` value that this `Blob` object represents, as an array of bytes.
`boolean` `isClosed()`
`long` `length()` Returns the number of bytes in the `BLOB` value designated by this `Blob` object.
`long` `position(Blob pattern, long start)` Retrieves the byte position in the `BLOB` value designated by this `Blob` object at which `pattern` begins.
`long` `position(byte[] pattern, long start)` Retrieves the byte position at which the specified byte array `pattern` begins within the `BLOB` value that this `Blob` object represents.
`OutputStream` `setBinaryStream(long pos)` Retrieves a stream that can be used to write to the `BLOB` value that this `Blob` object represents.
`int` `setBytes(long pos, byte[] bytes)` Writes the given array of bytes to the `BLOB` value that this `Blob` object represents, starting at position `pos`, and returns the number of bytes written.
`int` `setBytes(long pos, byte[] bytes, int offset, int len)` Writes all or part of the given `byte` array to the `BLOB` value that this `Blob` object represents and returns the number of bytes written.
`void` `setWritable(JDBCResultSet result, int index)`
`void` `truncate(long len)` Truncates the `BLOB` value that this `Blob` object represents to be `len` bytes in length.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JDBCBlobClient

    public JDBCBlobClient(org.hsqldb.SessionInterface session,
                          org.hsqldb.types.BlobDataID blob)

Method Detail

### length

    public long length()
                throws SQLException

  Returns the number of bytes in the `BLOB` value designated by this `Blob` object.

  Specified by:
    `length` in interface `Blob`
  Returns:
    length of the `BLOB` in bytes
  Throws:
    `SQLException` - if there is an error accessing the length of the `BLOB`

### getBytes

    public byte[] getBytes(long pos,
                           int length)
                    throws SQLException

  Retrieves all or part of the `BLOB` value that this `Blob` object represents, as an array of bytes.

  Specified by:
    `getBytes` in interface `Blob`
  Parameters:
    `pos` - the ordinal position of the first byte in the `BLOB` value to be extracted; the first byte is at position 1
    `length` - the number of consecutive bytes to be copied
  Returns:
    a byte array containing up to `length` consecutive bytes from the `BLOB` value designated by this `Blob` object, starting with the byte at position `pos`
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### getBinaryStream

    public InputStream getBinaryStream()
                                throws SQLException

  Retrieves the `BLOB` value designated by this `Blob` instance as a stream.

  Specified by:
    `getBinaryStream` in interface `Blob`
  Returns:
    a stream containing the `BLOB` data
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### position

    public long position(byte[] pattern,
                         long start)
                  throws SQLException

  Retrieves the byte position at which the specified byte array `pattern` begins within the `BLOB` value that this `Blob` object represents.

  Specified by:
    `position` in interface `Blob`
  Parameters:
    `pattern` - the byte array for which to search
    `start` - the position at which to begin searching; the first position is 1
  Returns:
    the position at which the pattern appears, else -1
  Throws:
    `SQLException` - if there is an error accessing the `BLOB`

### position

    public long position(Blob pattern,
                         long start)
                  throws SQLException

  Retrieves the byte position in the `BLOB` value designated by this `Blob` object at which `pattern` begins.

  Specified by:
    `position` in interface `Blob`
  Parameters:
    `pattern` - the `Blob` object designating the `BLOB` value for which to search
    `start` - the position in the `BLOB` value at which to begin searching; the first position is 1
  Returns:
    the position at which the pattern begins, else -1
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### setBytes

    public int setBytes(long pos,
                        byte[] bytes)
                 throws SQLException

  Writes the given array of bytes to the `BLOB` value that this `Blob` object represents, starting at position `pos`, and returns the number of bytes written.

  Specified by:
    `setBytes` in interface `Blob`
  Parameters:
    `pos` - the position in the `BLOB` object at which to start writing
    `bytes` - the array of bytes to be written to the `BLOB` value that this `Blob` object represents
  Returns:
    the number of bytes written
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### setBytes

    public int setBytes(long pos,
                        byte[] bytes,
                        int offset,
                        int len)
                 throws SQLException

  Writes all or part of the given `byte` array to the `BLOB` value that this `Blob` object represents and returns the number of bytes written.

  Specified by:
    `setBytes` in interface `Blob`
  Parameters:
    `pos` - the position in the `BLOB` object at which to start writing
    `bytes` - the array of bytes to be written to this `BLOB` object
    `offset` - the offset into the array `bytes` at which to start reading the bytes to be set
    `len` - the number of bytes to be written to the `BLOB` value from the array of bytes `bytes`
  Returns:
    the number of bytes written
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### setBinaryStream

    public OutputStream setBinaryStream(long pos)
                                 throws SQLException

  Retrieves a stream that can be used to write to the `BLOB` value that this `Blob` object represents.

  Specified by:
    `setBinaryStream` in interface `Blob`
  Parameters:
    `pos` - the position in the `BLOB` value at which to start writing
  Returns:
    a `java.io.OutputStream` object to which data can be written
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### truncate

    public void truncate(long len)
                  throws SQLException

  Truncates the `BLOB` value that this `Blob` object represents to be `len` bytes in length.

  Specified by:
    `truncate` in interface `Blob`
  Parameters:
    `len` - the length, in bytes, to which the `BLOB` value that this `Blob` object represents should be truncated
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### free

    public void free()
              throws SQLException

  This method frees the `Blob` object and releases the resources that it holds. The object is invalid once the `free` method is called.

  After `free` has been called, any attempt to invoke a method other than `free` will result in a `SQLException` being thrown. If `free` is called multiple times, the subsequent calls to `free` are treated as a no-op.

  Specified by:
    `free` in interface `Blob`
  Throws:
    `SQLException` - if an error occurs releasing the Blob's resources
    `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
  Since:
    JDK 1.6, HSQLDB 2.0

### getBinaryStream

    public InputStream getBinaryStream(long pos,
                                       long length)
                                throws SQLException

  Returns an `InputStream` object that contains a partial `Blob` value, starting with the byte specified by pos, which is length bytes in length.

  Specified by:
    `getBinaryStream` in interface `Blob`
  Parameters:
    `pos` - the offset to the first byte of the partial value to be retrieved. The first byte in the `Blob` is at position 1
    `length` - the length in bytes of the partial value to be retrieved
  Returns:
    `InputStream` through which the partial `Blob` value can be read.
  Throws:
    `SQLException` - if pos is less than 1 or if pos is greater than the number of bytes in the `Blob` or if pos + length is greater than the number of bytes in the `Blob`
    `SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
  Since:
    JDK 1.6, HSQLDB 2.0

### isClosed

    public boolean isClosed()

### getBlob

    public org.hsqldb.types.BlobDataID getBlob()

### setWritable

    public void setWritable(JDBCResultSet result,
                            int index)

### clearUpdates

    public void clearUpdates()

Copyright © 2001 - 2010 HSQL Development Group.