diff options
Diffstat (limited to 'offapi/com/sun/star/sdbc/XParameters.idl')
-rw-r--r-- | offapi/com/sun/star/sdbc/XParameters.idl | 422 |
1 files changed, 422 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdbc/XParameters.idl b/offapi/com/sun/star/sdbc/XParameters.idl new file mode 100644 index 000000000..6f1beca0a --- /dev/null +++ b/offapi/com/sun/star/sdbc/XParameters.idl @@ -0,0 +1,422 @@ +/* -*- 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_XParameters_idl__ +#define __com_sun_star_sdbc_XParameters_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; + + +/** is used for parameter setting, commonly implemented in conjunction with + PreparedStatements. + + + <p> + <b>Note:</b> The setXXX methods for setting IN parameter values + must specify types that are compatible with the defined SQL type of + the input parameter. For instance, if the IN parameter has SQL type + Integer, then the method + com::sun::star::sdbc::XParameters::setInt() + should be used. + + </p> + <p> + If arbitrary parameter type conversions are required, the method + com::sun::star::sdbc::XParameters::setObject() + should be used with a target SQL type. + <br/> + <br/> + Example of setting a parameter; + <code>con</code> + is an active connection. + </p> + + @code{.bas} + pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?") + pstmt.setDouble(1, 153833.00) + pstmt.setLong(2, 110592) + @endcode + + @see com::sun::star::sdbc::XPreparedStatement + */ +published interface XParameters: com::sun::star::uno::XInterface +{ + + /** sets the designated parameter to SQL NULL. + */ + void setNull([in]long parameterIndex, + [in]long sqlType) raises (SQLException); + + /** sets the designated parameter to SQL NULL. This version of setNull should + be used for user-named types and REF type parameters. Examples + of user-named types include: STRUCT, DISTINCT, OBJECT, and + named array types. + + + <p> + <b>Note:</b> To be portable, applications must give the + SQL type code and the fully-qualified SQL type name when specifying + a NULL user-defined or REF parameter. In the case of a user-named type + the name is the type name of the parameter itself. For a REF + parameter the name is the type name of the referenced type. If + a SDBC driver does not need the type code or type name information, + it may ignore it. + <br/> + Although it is intended for user-named and Ref parameters, + this method may be used to set a null parameter of any JDBC type. + If the parameter does not have a user-named or REF type, the given + typeName is ignored. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param sqlType + the type of the column to set to `NULL` + @param typeName + the name of the type + @throws SQLException + if a database access error occurs. + */ + void setObjectNull([in]long parameterIndex, + [in]long sqlType, + [in]string typeName) raises (SQLException); + + /** sets the designated parameter to a boolean value. The driver converts this + to a SQL BIT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBoolean([in]long parameterIndex, [in]boolean x) + raises (SQLException); + + /** sets the designated parameter to a byte value. The driver converts this + to a SQL TINYINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setByte([in]long parameterIndex, [in]byte x) raises (SQLException); + + /** sets the designated parameter to a short value. The driver converts this + to a SQL SMALLINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setShort([in]long parameterIndex, [in]short x) raises (SQLException); + + /** sets the designated parameter to a long value. The driver converts this + to a SQL INTEGER value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setInt([in]long parameterIndex, [in]long x) raises (SQLException); + + /** sets the designated parameter to a hyper value. The driver converts this + to a SQL BIGINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setLong([in]long parameterIndex, [in]hyper x) raises (SQLException); + + /** sets the designated parameter to a float value. The driver converts this + to a SQL FLOAT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setFloat([in]long parameterIndex, [in]float x) raises (SQLException); + + /** sets the designated parameter to a double value. The driver converts this + to a SQL DOUBLE value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setDouble([in]long parameterIndex, [in]double x) raises (SQLException); + + /** sets the designated parameter to a string value. The driver converts this + to a SQL VARCHAR or LONGVARCHAR value (depending on the argument's + size relative to the driver's limits on VARCHARs) when it sends + it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setString([in]long parameterIndex, [in]string x) raises (SQLException); + + /** sets the designated parameter to a sequence of bytes. The driver converts + this to a SQL VARBINARY or LONGVARBINARY (depending on the + argument's size relative to the driver's limits on VARBINARYs) + when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBytes([in]long parameterIndex, [in]sequence<byte> x) + raises (SQLException); + + /** sets the designated parameter to a date value. The driver converts this + to a SQL DATE value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setDate([in]long parameterIndex, [in]com::sun::star::util::Date x) + raises (SQLException); + + /** sets the designated parameter to a time value. The driver converts this + to a SQL TIME value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setTime([in]long parameterIndex, [in]com::sun::star::util::Time x) + raises (SQLException); + + /** sets the designated parameter to a datetime value. The driver + converts this to a SQL TIMESTAMP value when it sends it to the + database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setTimestamp([in]long parameterIndex, + [in]com::sun::star::util::DateTime x) raises (SQLException); + + /** sets the designated parameter to the given input stream, which will have + the specified number of bytes. + When a very large binary value is input to a LONGVARBINARY or LONGVARCHAR + parameter, it may be more practical to send it via an + com::sun::star::io::XInputStream + . SDBC will read the data from the stream as needed, until it reaches end-of-file. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param length + the number of bytes in the stream + @throws SQLException + if a database access error occurs. + */ + void setBinaryStream([in]long parameterIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** sets the designated parameter to the given input stream, which will have + the specified number of bytes. + When a very large binary value is input to a LONGVARCHAR + parameter, it may be more practical to send it via a + com::sun::star::io::XInputStream + . SDBC will read the data from the stream as needed, until it reaches end-of-file. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param length + the number of characters in the stream + @throws SQLException + if a database access error occurs. + */ + void setCharacterStream([in]long parameterIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** sets the value of a parameter using an any. + + + <p>The given object will be converted to the targetSqlType + before being sent to the database. + If the object has a custom mapping (is of a class implementing SQLData), + the SDBC driver should call its method <code>writeSQL</code> to write it + to the SQL data stream. + If, on the other hand, the object is of a service implementing Ref, Blob, + Clob, Struct, or Array, the driver should pass it to the database as a + value of the corresponding SQL type. + </p> + <p>Note that this method may be used to pass database-specific + abstract data types. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setObject([in]long parameterIndex, [in]any x) + raises (SQLException); + + /** set a value from the Datatype ANY for a parameter. + + + + <p>The given object will be converted to the targetSqlType + before being sent to the database. + If the object has a custom mapping (is of a class implementing SQLData), + the SDBC driver should call its method <code>writeSQL</code> to write it + to the SQL data stream. + If, on the other hand, the object is of a service implementing Ref, Blob, + Clob, Struct, or Array, the driver should pass it to the database as a + value of the corresponding SQL type. + </p> + <p>Note that this method may be used to pass database-specific + abstract data types. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param targetSqlType + the SQL type (as defined in + com::sun::star::sdbc::DataType + ) to be sent to the database. The scale argument may further qualify this type. + @param scale + for + com::sun::star::sdbc::DataType::DECIMAL + or + com::sun::star::sdbc::DataType::NUMERIC + types, this is the number of digits after the decimal point. For all other types, this value will be ignored. + @throws SQLException + if a database access error occurs. + */ + void setObjectWithInfo([in]long parameterIndex, + [in]any x, [in]long targetSqlType, [in]long scale) + raises (SQLException); + + /** sets a REF(&lt;structured-type&gt;) parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setRef ([in]long parameterIndex, [in]XRef x) raises (SQLException); + + /** sets a BLOB parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBlob ([in]long parameterIndex, [in]XBlob x) raises (SQLException); + + /** sets a CLOB parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setClob ([in]long parameterIndex, [in]XClob x) raises (SQLException); + + /** sets an Array parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setArray ([in]long parameterIndex, [in]XArray x) raises (SQLException); + + + /** clears the current parameter values immediately. + + + <p>In general, parameter values remain in force for repeated use of a + Statement. Setting a parameter value automatically clears its + previous value. However, in some cases it is useful to immediately + release the resources used by the current parameter values; this can + be done by calling clearParameters. + </p> + @throws SQLException + if a database access error occurs. + */ + void clearParameters() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |