diff options
Diffstat (limited to 'offapi/com/sun/star/sdbc/PreparedStatement.idl')
-rw-r--r-- | offapi/com/sun/star/sdbc/PreparedStatement.idl | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdbc/PreparedStatement.idl b/offapi/com/sun/star/sdbc/PreparedStatement.idl new file mode 100644 index 000000000000..43bb4992fdda --- /dev/null +++ b/offapi/com/sun/star/sdbc/PreparedStatement.idl @@ -0,0 +1,272 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_sdbc_PreparedStatement_idl__ +#define __com_sun_star_sdbc_PreparedStatement_idl__ + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_beans_XPropertySet_idl__ +#include <com/sun/star/beans/XPropertySet.idl> +#endif + +#ifndef __com_sun_star_util_XCancellable_idl__ +#include <com/sun/star/util/XCancellable.idl> +#endif + + module com { module sun { module star { module sdbc { + + published interface XPreparedStatement; + published interface XPreparedBatchExecution; + published interface XParameters; + published interface XWarningsSupplier; + published interface XMultipleResults; + published interface XResultSetMetaDataSupplier; + published interface XCloseable; + + +/** represents a precompiled SQL statement. + <P> + A SQL statement is pre-compiled and stored in a PreparedStatement object. + This object can then be used to efficiently execute this statement multiple + times. + </P> + <P> + <B> + Note: + </B> + The + <code>setXXX</code> + 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 + <member scope="com::sun::star::sdbc">XParameters::setInt()</member> + should be used. + </P> + <p> + If arbitrary parameter type conversions are required, the method + <member scope="com::sun::star::sdbc">XParameters::setObject()</member> + should be used with a target SQL type. + </p> + <p> + Example of setting a parameter; <code>con</code> is an active connection. + @example:StarBASIC + <listing> + pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?") + pstmt.setDouble(1, 153833.00) + pstmt.setLong(2, 110592) + </listing> + </p> + <P> + Only one + <type scope="com::sun::star::sdbc">ResultSet</type> + per + <type scope="com::sun::star::sdbc">Statement</type> + can be open at any point in + time. Therefore, if the reading of one ResultSet is interleaved + with the reading of another, each must have been generated by + different Statements. All statement + <code>execute</code> + methods implicitly close a statement's current ResultSet if an open one exists. + </p> + */ +published service PreparedStatement +{ + + /** optional for implementation, controls the releasing of resources + and the notification of registered listeners. + */ + [optional] interface com::sun::star::lang::XComponent; + + + /** freeing all resources of a statement. A related resultset will be + freed as well. + */ + interface XCloseable; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** could be used for cancelling the execution of SQL statements, if both + the DBMS and the driver support aborting an SQL statement. + The implementation is optional. + */ + [optional] interface com::sun::star::util::XCancellable; + + /** is the interface for executing SQL prepared commands. + */ + interface XPreparedStatement; + + + /** provides access to the description of the result set which would be generated by executing the + <type>PreparedStatement</type>. + */ + interface XResultSetMetaDataSupplier; + + + /** is used for setting parameters before execution of the precompiled + statement. + */ + interface XParameters; + + + /** provides the ability of batch execution. This interface is optional + for execution. + <p> + A driver implementing batch execution must return + <TRUE/> + for + <member scope= "com::sun::star::sdbc">XDatabaseMetaData::supportsBatchUpdates()</member> + </p> + */ + [optional] interface XPreparedBatchExecution; + + + /** controls the chaining of warnings, which may occur on every call + to the connected database. Chained warnings from previous calls will be + cleared before processing a new call. + */ + interface XWarningsSupplier; + + + /** covers the handling of multiple results after executing an SQL command. + */ + interface XMultipleResults; + + + /** retrieves the number of seconds the driver will wait for a Statement + to execute. If the limit is exceeded, a SQLException is thrown. + There is no limitation, if set to zero. + */ + [property] long QueryTimeOut; + + + /** returns the maximum number of bytes allowed for any column value. + <p> + This limit is the maximum number of bytes that can be returned + for any column value. The limit applies only to + <member scope= "com::sun::star::sdbc">DataType::BINARY</member> + , + <member scope= "com::sun::star::sdbc">DataType::VARBINARY</member> + , + <member scope= "com::sun::star::sdbc">DataType::LONGVARBINARY</member> + , + <member scope= "com::sun::star::sdbc">DataType::CHAR</member> + , + <member scope= "com::sun::star::sdbc">DataType::VARCHAR</member> + , + and + <member scope= "com::sun::star::sdbc">DataType::LONGVARCHAR</member> + columns. + If the limit is exceeded, the excess data is silently discarded. + </p> + <p> + There is no limitation, if set to zero. + </p> + */ + [property] long MaxFieldSize; + + + /** retrieves the maximum number of rows that a ResultSet can contain. + If the limit is exceeded, the excess rows are silently dropped. + <br>There is no limitation, if set to zero. + */ + [property] long MaxRows; + + + /** defines the SQL cursor name that will be used by subsequent Statement + <code>execute</code> + methods. + <p> + This name can then be used in SQL positioned update/delete statements to + identify the current row in the ResultSet generated by this statement. If + the database does not support positioned update/delete, this property is + a noop. To insure that a cursor has the proper isolation level to support + updates, the cursor's SELECT statement should be of the form + 'select for update ...'. If the 'for update' phrase is omitted, + positioned updates may fail. + </p> + <P> + <B> + Note: + </B> + By definition, positioned update/delete + execution must be done by a different Statement than the one + which generated the ResultSet being used for positioning. Also, + cursor names must be unique within a connection. + </p> + */ + [property] string CursorName; + + + /** retrieves the result set concurrency. + @see com::sun::star::sdbc::ResultSetConcurrency + */ + [property] long ResultSetConcurrency; + + + /** Determine the result set type. + @see com::sun::star::sdbc::ResultSetType + */ + [property] long ResultSetType; + + + /** retrieves the direction for fetching rows from database tables + that is the default for result sets generated from this + <code>Statement</code> + object. + <p> + If this + <code>Statement</code> + object has not set a fetch direction, + the return value is implementation-specific. + </p> + */ + [property] long FetchDirection; + + + /** retrieves the number of result set rows that is the default fetch size + for result sets generated from this + <code>Statement</code> + object. + <p> + If this + <code>Statement</code> + object has not set a fetch size, + the return value is implementation-specific. + </p> + */ + [property] long FetchSize; +}; + +//============================================================================= + +}; }; }; }; + +#endif |