Class AbstractFbWireOutputBlob

    • Method Detail

      • getBlobId

        public final long getBlobId()
        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.

        TODO: Consider allowing this and have the implementation handle longer segments by sending multiple (batched?) requests.
        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.
      • 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.