blob: 9f2ff7c27b3bcb830268ce3cbc73e8e45474b691 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_sdbc_XBlob_idl__
#define __com_sun_star_sdbc_XBlob_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
module com { module sun { module star { module io {
published interface XInputStream;
};};};};
#ifndef __com_sun_star_sdbc_SQLException_idl__
#include <com/sun/star/sdbc/SQLException.idl>
#endif
module com { module sun { module star { module sdbc {
/** is the representation (mapping) of an SQL
<i>
BLOB
</i>
.
<p>
A SQL
<i>
BLOB
</i>
is a built-in type that stores a
Binary Large Object as a column value in a row of a database table.
The driver implements
<i>
BLOB
</i>
using a
SQL
<code>locator(BLOB)</code>
, which means that a
<code>Blob</code>
object contains a logical pointer to the SQL
<i>
BLOB
</i>
data rather than the data itself.
<br/>
A
<code>Blob</code>
object is valid for the duration of the transaction in which is was created.
</p>
<p>
Methods in the interfaces
<type scope="com::sun::star::sdbc">XResultSet</type>
,
and
<type scope="com::sun::star::sdbc">XPreparedStatement</type>
, such as
<code>getBlob</code>
and
<code>setBlob</code>
allow a programmer to access the SQL
<i>
BLOB
</i>
.
<br/>
The
<code>Blob</code>
interface provides methods for getting the length of a SQL
<i>
BLOB
</i>
(Binary Large Object) value, for materializing a
<i>
BLOB
</i>
value on the client and for determining the position of a pattern of bytes within a
<i>
BLOB
</i>
value.
</p>
*/
published interface XBlob: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** returns the number of bytes in the
<i>
BLOB
</i>
value
designated by this
<code>Blob</code>
object.
@returns
the length
@throws SQLException
if a database access error occurs.
*/
hyper length() raises (SQLException);
//-------------------------------------------------------------------------
/** returns as an array of bytes part or all of the
<i>
BLOB
</i>
value that this
<code>Blob</code>
object designates. The byte
array contains up to
<code>length</code>
consecutive bytes
starting at position
<code>pos</code>.
@param pos
is the ordinal position of the first byte in the
<i>
BLOB
</i>
value to be extracted; the first byte is at
position 1.
@param length
is the number of consecutive bytes to be copied.
@returns
a byte array containing up to
<code>length</code>
consecutive bytes from the
<i>
BLOB
</i>
value designated
by this
<code>Blob</code>
object, starting with the byte at position
<code>pos</code>
.
@throws SQLException
if there is an error accessing the
<i>
BLOB
</i>
.
*/
sequence<byte> getBytes([in]hyper pos, [in]long length)
raises (SQLException);
//-------------------------------------------------------------------------
/** retrieves the
<i>
BLOB
</i>
designated by this
<code>Blob</code>
instance as a stream.
@returns
the stream
@throws SQLException
if a database access error occurs.
*/
com::sun::star::io::XInputStream getBinaryStream()
raises (SQLException);
//-------------------------------------------------------------------------
/** determines the byte position at which the specified byte
<code>pattern</code>
begins within the
<i>
BLOB
</i>
value that this
<code>Blob</code>
object represents. The
search for
<code>pattern</code>
begins at position
<code>start</code>
.
@param pattern
the pattern to search
@returns
the position
@throws SQLException
if a database access error occurs.
*/
hyper position([in]sequence<byte> pattern, [in]hyper start)
raises (SQLException);
//-------------------------------------------------------------------------
/** determines the byte position in the
<i>
BLOB
</i>
value
designated by this
<code>Blob</code>
object at which
<code>pattern</code>
begins. The search begins at position
<code>start</code>
.
@param pattern
the pattern to search
@param start
position to start
@returns
the position
@throws SQLException
if a database access error occurs.
*/
hyper positionOfBlob([in]XBlob pattern,[in] hyper start)
raises (SQLException);
};
//=============================================================================
}; }; }; };
/*===========================================================================
===========================================================================*/
#endif