/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
module com { module sun { module star { module io {
published interface XInputStream;
};};};};
module com { module sun { module star { module sdbc {
published interface XRef;
published interface XArray;
published interface XBlob;
published interface XClob;
published interface XStruct;
published interface XSQLData;
/** is used as an output stream for writing the attributes of a user-defined
type back to the database. This interface, used only for custom mapping,
is used by the driver, and its methods are never directly invoked
by a programmer.
When an object of a class implementing interface
com::sun::star::sdbc::XSQLData
is passed as an argument to a SQL statement, the JDBC driver calls
com::sun::star::sdbc::SQLData::getSQLType()
to determine the kind of SQL datum being passed to the database.
The driver then creates an instance of
XSQLOutput
and passes it to the method
com::sun::star::sdbc::XSQLData::writeSQL()
. The method
writeSQL
in turn calls the appropriate
XSQLOutput.writeXXX
methods to write data from the
com::sun::star::sdbc::XSQLData
object to the
XSQLOutput
output stream as the representation of a SQL user-defined type.
*/
published interface XSQLOutput: com::sun::star::uno::XInterface
{
/** writes the next attribute to the stream as a string.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeString([in]string x) raises (SQLException);
/** writes the next attribute to the stream as boolean.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeBoolean([in]boolean x) raises (SQLException);
/** writes the next attribute to the stream as byte.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeByte([in]byte x) raises (SQLException);
/** writes the next attribute to the stream as short.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeShort([in]short x) raises (SQLException);
/** writes the next attribute to the stream as long.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeInt([in]long x) raises (SQLException);
/** writes the next attribute to the stream as hyper.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeLong([in]hyper x) raises (SQLException);
/** writes the next attribute to the stream as float.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeFloat([in]float x) raises (SQLException);
/** writes the next attribute to the stream as double.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeDouble([in]double x) raises (SQLException);
/** writes the next attribute to the stream as byte sequence.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeBytes([in]sequence x) raises (SQLException);
/** writes the next attribute to the stream as a date.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeDate([in]com::sun::star::util::Date x) raises (SQLException);
/** writes the next attribute to the stream as a time.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeTime([in]com::sun::star::util::Time x) raises (SQLException);
/** writes the next attribute to the stream as a datetime.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeTimestamp([in]com::sun::star::util::DateTime x)
raises (SQLException);
/** writes the next attribute to the stream as a stream of uninterpreted
bytes.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeBinaryStream([in]com::sun::star::io::XInputStream x)
raises (SQLException);
/** writes the next attribute to the stream as a stream of Unicode string.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeCharacterStream([in]com::sun::star::io::XInputStream x)
raises (SQLException);
/** writes to the stream the data contained in the given
XSQLData
object.
When the
XSQLData
object is
`NULL`
, this method writes an SQL NULL to the stream.
Otherwise, it calls the
com::sun::star::sdbc::XSQLData::writeSQL()
method of the given object, which
writes the object's attributes to the stream.
The implementation of the method
XSQLData::writeSQL()
calls the appropriate
XSQLOutput.writeXXX
method(s) for writing each of the object's attributes in order.
The attributes must be read from an
com::sun::star::sdbc::XSQLInput
input stream and written to an
XSQLOutput
output stream in the same order in which they were
listed in the SQL definition of the user-defined type.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeObject([in]XSQLData x) raises (SQLException);
/** writes a REF(<structured-type>) to the stream.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeRef([in]XRef x) raises (SQLException);
/** writes a BLOB to the stream.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeBlob([in]XBlob x) raises (SQLException);
/** writes a CLOB to the stream.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeClob([in]XClob x) raises (SQLException);
/** writes a structured-type to the stream.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeStruct([in]XStruct x) raises (SQLException);
/** writes an array to the stream.
@param x
the value to pass to the database.
@throws SQLException
if a database access error occurs.
*/
void writeArray([in]XArray x) raises (SQLException);
};
}; }; }; };
/*===========================================================================
===========================================================================*/
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */