com.microsoft.sqlserver.jdbc

## Class SQLServerBlob

- java.lang.Object
- - com.microsoft.sqlserver.jdbc.SQLServerBlob

All Implemented Interfaces:
  Serializable, Blob

    public final class SQLServerBlob
    extends Object
    implements Blob, Serializable

SQLServerBlob represents a binary LOB object and implements a java.sql.Blob.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`SQLServerBlob(SQLServerConnection connection, byte[] data)` Deprecated. Use `SQLServerConnection.createBlob()` instead.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `free()` Frees this Blob object and releases the resources that it holds.
`InputStream` `getBinaryStream()`
`InputStream` `getBinaryStream(long pos, long length)`
`byte[]` `getBytes(long pos, int length)` Retrieves all or part of the BLOB value that this Blob object represents, as an array of bytes.
`long` `length()` Return the length of the BLOB
`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[] bPattern, 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 into the Blob 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.
`String` `toString()`
`void` `truncate(long len)` Truncate a BLOB

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### SQLServerBlob

    @Deprecated
    public SQLServerBlob(SQLServerConnection connection,
                                      byte[] data)

Deprecated. Use `SQLServerConnection.createBlob()` instead.
Create a new BLOB

Parameters:
  `connection` - the database connection this blob is implemented on
  `data` - the BLOB's data

### Method Detail

#### toString

    public final String toString()

Overrides:
  `toString` in class `Object`

#### free

    public void free()
              throws SQLException

Frees this Blob object and releases the resources that it holds.

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`

#### getBinaryStream

    public InputStream getBinaryStream()
                                throws SQLException

Specified by:
  `getBinaryStream` in interface `Blob`
Throws:
  `SQLException`

#### getBinaryStream

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

Specified by:
  `getBinaryStream` in interface `Blob`
Throws:
  `SQLException`

#### 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. This byte array contains up to length consecutive bytes starting at position pos.

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; the value for length must be 0 or greater
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; if pos is less than 1 or length is less than 0

#### length

    public long length()
                throws SQLException

Return the length of the BLOB

Specified by:
  `length` in interface `Blob`
Returns:
  the data length
Throws:
  `SQLException` - when an error occurs

#### 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. The search begins at position start.

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 postion at which the pattern begins, else -1
Throws:
  `SQLException` - - if there is an error accessing the BLOB value or if start is less than 1

#### position

    public long position(byte[] bPattern,
                         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. The search for pattern begins at position start.

Specified by:
  `position` in interface `Blob`
Parameters:
  `bPattern` - - 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 or if start is less than 1

#### truncate

    public void truncate(long len)
                  throws SQLException

Truncate a BLOB

Specified by:
  `truncate` in interface `Blob`
Parameters:
  `len` - the new length for the BLOB
Throws:
  `SQLException` - when an error occurs

#### 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; the first position is 1
Returns:
  a java.io.OutputStream object to which data can be written
Throws:
  `SQLException` - - if there is an error accessing the BLOB value or if pos is less than 1

#### setBytes

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

Writes the given array of bytes into the Blob starting at position pos, and returns the number of bytes written.

Specified by:
  `setBytes` in interface `Blob`
Parameters:
  `pos` - the position (1 based) in the Blob object at which to start writing the data.
  `bytes` - the array of bytes to be written into the Blob.
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. Writing starts at position pos in the BLOB value; len bytes from the given byte wrray are written. The array of bytes will overwrite the existing bytes in the Blob object starting at the position pos. If the end of the Blob value is reached while writing the array bytes, then the length of the Blob value will be increased to accomodate the extra bytes. SQL Server behavior: If the value specified for pos is greater than the length+1 of the BLOB value then a SQLException is thrown.

Specified by:
  `setBytes` in interface `Blob`
Parameters:
  `pos` - - the position in the BLOB object at which to start writing; the first position is 1
  `bytes` - - the array of bytes to be written to this BLOB object.
  `offset` - - the offset (0-based) into the array bytes at which to start reading the bytes to 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 or if pos is less than 1