Class AbstractFbWireOutputBlob

    • Method Detail

      • getBlobId

        public final long getBlobId()
        Description copied from interface: FbBlob
        Returns the blob id.

        For output blobs, this will return FbBlob.NO_BLOB_ID (0L) if the blob wasn't opened yet, or if the blob is deferred opened (client-side only). The value FbBlob.NO_BLOB_ID is technically invalid, but Firebird will handle it as an empty blob (both for input and output).

        Returns:
        The Firebird blob id
      • setBlobId

        protected final void setBlobId​(long blobId)
                                throws java.sql.SQLException
        Sets the blob id.
        Parameters:
        blobId - Blob id.
        Throws:
        java.sql.SQLException - If this is an input blob, or if this is an output blob whose blobId was already set.
      • isOutput

        public final boolean isOutput()
        Returns:
        true if this is an output blob (write only), false if this is an input blob (read only)
      • getSegment

        public final byte[] getSegment​(int sizeRequested)
                                throws java.sql.SQLException
        Description copied from interface: FbBlob
        Gets a segment of blob data.

        When sizeRequested exceeds FbBlob.getMaximumSegmentSize() it is silently reduced to the maximum segment size.

        Parameters:
        sizeRequested - Requested segment size (> 0).
        Returns:
        Retrieved segment (size may be less than requested)
        Throws:
        java.sql.SQLException - If this is an output blob, the blob is closed, the transaction is not active, or a database connection error occurred.
        See Also:
        FbBlob.get(byte[], int, int)
      • get

        protected final int get​(byte[] b,
                                int off,
                                int len,
                                int minLen)
                         throws java.sql.SQLException
        Description copied from class: AbstractFbBlob
        Specified by:
        get in class AbstractFbBlob
        Parameters:
        b - target byte array
        off - offset to start
        len - number of bytes
        minLen - minimum number of bytes to fill (must be 0 < minLen <= len if len != 0
        Returns:
        actual number of bytes read; is 0 if len == 0, will only be less than minLen if end-of-blob is reached
        Throws:
        java.sql.SQLException - for database access errors, if off < 0, len < 0, or if off + len > b.length, or len != 0 && (minLen <= 0 || minLen > len)
      • seek

        public final void seek​(int offset,
                               FbBlob.SeekMode seekMode)
                        throws java.sql.SQLException
        Description copied from interface: FbBlob
        Performs a seek on a blob with the specified seekMode and offset.

        Firebird only supports seek on stream blobs.

        Parameters:
        offset - Offset of the seek, effect depends on value of seekMode
        seekMode - Value of FbBlob.SeekMode
        Throws:
        java.sql.SQLException - If the blob is closed, the transaction is not active, or a database error occurred.