/* -*- 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 . */ #ifndef __com_sun_star_sdbc_XSQLOutput_idl__ #define __com_sun_star_sdbc_XSQLOutput_idl__ #include #include #include #include module com { module sun { module star { module io { published interface XInputStream; };};};}; #include 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); }; }; }; }; }; /*=========================================================================== ===========================================================================*/ #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */