com.ibm.as400.access
Class AS400JDBCBlobLocator

java.lang.Object
  extended by com.ibm.as400.access.AS400JDBCBlobLocator
All Implemented Interfaces:
Blob

public class AS400JDBCBlobLocator
extends Object
implements Blob

The AS400JDBCBlobLocator class provides access to binary large objects. The data is valid only within the current transaction.


Method Summary
 void free()
          This method frees the Blob object and releases the resources that it holds.
 InputStream getBinaryStream()
          Returns the entire BLOB as a stream of uninterpreted bytes.
 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.
 byte[] getBytes(long position, int length)
          Returns part of the contents of the BLOB.
 int getHandle()
          Returns the handle to this BLOB locator in the database.
 long length()
          Returns the length of the BLOB.
 long position(Blob pattern, long position)
          Returns the position at which a pattern is found in the BLOB.
 long position(byte[] pattern, long position)
          Returns the position at which a pattern is found in the BLOB.
 OutputStream setBinaryStream(long position)
          Returns a stream that an application can use to write to this BLOB.
 int setBytes(long position, byte[] bytesToWrite)
          Writes an array of bytes to this BLOB, starting at position position in the BLOB.
 int setBytes(long position, byte[] bytesToWrite, int offset, int lengthOfWrite)
          Writes all or part of the byte array the application passes in to this BLOB, starting at position position in the BLOB.
 void truncate(long lengthOfBLOB)
          Truncates this BLOB to a length of lengthOfBLOB bytes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getBinaryStream

public InputStream getBinaryStream()
                            throws SQLException
Returns the entire BLOB as a stream of uninterpreted bytes.

Returns:
The stream.
Throws:
SQLException - If an error occurs.

getBytes

public byte[] getBytes(long position,
                       int length)
                throws SQLException
Returns part of the contents of the BLOB.

Parameters:
position - The position within the BLOB (1-based).
length - The length to return.
Returns:
The contents.
Throws:
SQLException - If the position is not valid, if the length is not valid, or an error occurs.

getHandle

public int getHandle()
              throws SQLException
Returns the handle to this BLOB locator in the database.

Returns:
The handle to this locator in the database.
Throws:
SQLException

length

public long length()
            throws SQLException
Returns the length of the BLOB.

Returns:
The length of the BLOB, in bytes.
Throws:
SQLException - If an error occurs.

position

public long position(byte[] pattern,
                     long position)
              throws SQLException
Returns the position at which a pattern is found in the BLOB.

Parameters:
pattern - The pattern.
position - The position within the BLOB to begin searching (1-based).
Returns:
The offset into the BLOB at which the pattern was found, or -1 if the pattern was not found or the pattern was a byte array of length 0.
Throws:
SQLException - If the position is not valid or an error occurs.

position

public long position(Blob pattern,
                     long position)
              throws SQLException
Returns the position at which a pattern is found in the BLOB.

Parameters:
pattern - The pattern.
position - The position within the BLOB to begin searching (1-based).
Returns:
The offset into the BLOB at which the pattern was found, or -1 if the pattern was not found or the pattern was a byte array of length 0.
Throws:
SQLException - If the position is not valid or an error occurs.

setBinaryStream

public OutputStream setBinaryStream(long position)
                             throws SQLException
Returns a stream that an application can use to write to this BLOB. The stream begins at position position.

Parameters:
position - The position (1-based) in the BLOB where writes should start.
Returns:
An OutputStream object to which data can be written by an application.
Throws:
SQLException - If there is an error accessing the BLOB or if the position specified is greater than the length of the BLOB.

setBytes

public int setBytes(long position,
                    byte[] bytesToWrite)
             throws SQLException
Writes an array of bytes to this BLOB, starting at position position in the BLOB.

Parameters:
position - The position (1-based) in the BLOB where writes should start.
bytesToWrite - The array of bytes to be written to this BLOB.
Returns:
The number of bytes written to the BLOB.
Throws:
SQLException - If there is an error accessing the BLOB or if the position specified is greater than the length of the BLOB.

setBytes

public int setBytes(long position,
                    byte[] bytesToWrite,
                    int offset,
                    int lengthOfWrite)
             throws SQLException
Writes all or part of the byte array the application passes in to this BLOB, starting at position position in the BLOB. The lengthOfWrite bytes written will start from offset in the bytes that were provided by the application.

Parameters:
position - The position (1-based) in the BLOB where writes should start.
bytesToWrite - The array of bytes to be written to this BLOB.
offset - The offset into the array at which to start reading bytes (0-based).
lengthOfWrite - The number of bytes to be written to the BLOB from the array of bytes.
Returns:
The number of bytes written.
Throws:
SQLException - If there is an error accessing the BLOB or if the position specified is greater than the length of the BLOB.

truncate

public void truncate(long lengthOfBLOB)
              throws SQLException
Truncates this BLOB to a length of lengthOfBLOB bytes.

Parameters:
lengthOfBLOB - The length, in bytes, that this BLOB should be after truncation.
Throws:
SQLException - If there is an error accessing the BLOB or if the length specified is greater than the length of the BLOB.

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. If free is called multiple times, the subsequent calls to free are treated as a no-op.

Throws:
SQLException - if an error occurs releasing the Blob's resources

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.

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