/************************************************************************* * * 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_XConnection_idl__ #define __com_sun_star_sdbc_XConnection_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include <com/sun/star/uno/XInterface.idl> #endif module com { module sun { module star { module container { published interface XNameAccess; };};};}; #ifndef __com_sun_star_sdbc_SQLException_idl__ #include <com/sun/star/sdbc/SQLException.idl> #endif #ifndef __com_sun_star_sdbc_XCloseable_idl__ #include <com/sun/star/sdbc/XCloseable.idl> #endif module com { module sun { module star { module sdbc { published interface XStatement; published interface XPreparedStatement; published interface XDatabaseMetaData; /** represents a connection (session) with a specific database. Within the context of a Connection, SQL statements are executed and results are returned. <p> A Connection's database is able to provide information describing its tables, its supported SQL grammar, its stored procedures, and the capabilities of this connection. This information is obtained with the <member scope="com::sun::star::sdbc">XDatabaseMetaData::getMetaData()</member> method. </p> @see com::sun::star::sdbc::XDriverManager @see com::sun::star::sdbc::XStatement @see com::sun::star::sdbc::XDatabaseMetaData */ published interface XConnection: com::sun::star::sdbc::XCloseable { /** creates a new <type scope="com::sun::star::sdbc">Statement</type> object for sending SQL statements to the database. <p> SQL statements without parameters are normally executed using Statement objects. If the same SQL statement is executed many times, it is more efficient to use a <type scope="com::sun::star::sdbc">PreparedStatement</type> . </p> <p> Result sets created using the returned Statement will have forward-only type, and read-only concurrency, by default. </p> <p> Escape processing for the SQL-Statement is enabled, by default. </p> @returns a new Statement object @throws SQLException if a database access error occurs. */ XStatement createStatement() raises (SQLException); //------------------------------------------------------------------------- /** creates a <type scope="com::sun::star::sdbc">PreparedStatement</type> object for sending parameterized SQL statements to the database. <p> A SQL statement with or without IN parameters can be 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> This method is optimized for handling parametric SQL statements that benefit from precompilation. If the driver supports precompilation, the method <code>prepareStatement</code> will send the statement to the database for precompilation. Some drivers may not support precompilation. In this case, the statement may not be sent to the database until the <type scope="com::sun::star::sdbc">PreparedStatement</type> is executed. This has no direct effect on users; however, it does affect which method throws certain SQLExceptions. </p> <p> Result sets created using the returned PreparedStatement will have forward-only type and read-only concurrency, by default. </p> <p> Escape processing for the SQL-Statement is enabled, by default. </p> @param sql a SQL statement that may contain one or more '?' IN parameter placeholders @returns a new PreparedStatement object containing the pre-compiled statement @throws SQLException if a database access error occurs. */ XPreparedStatement prepareStatement([in]string sql) raises (SQLException); //------------------------------------------------------------------------- /** creates a <type scope="com::sun::star::sdbc">CallableStatement</type> object for calling database stored procedures. <p> The CallableStatement provides methods for setting up its IN and OUT parameters, and methods for executing the call to a stored procedure. </p> <p> <b> Note: </b> This method is optimized for handling stored procedure call statements. Some drivers may send the call statement to the database when the method <code>prepareCall</code> is done; <br/> others may wait until the CallableStatement is executed. This has no direct effect on users; however, it does affect which method throws certain SQLExceptions. Result sets created using the returned CallableStatement will have forward-only type and read-only concurrency, by default. </p> @param sql a SQL statement that may contain one or more '?' IN parameter placeholders @returns a new PreparedStatement object containing the pre-compiled statement @throws SQLException if a database access error occurs. */ XPreparedStatement prepareCall([in]string sql) raises (SQLException); //------------------------------------------------------------------------- /** converts the given SQL statement into the system's native SQL grammar. A driver may convert the JDBC SQL grammar into its system's native SQL grammar prior to sending it; this method returns the native form of the statement that the driver would have sent. @param sql a SQL statement that may contain one or more '?' parameter placeholders @returns the native form of this statement @throws SQLException if a database access error occurs. */ string nativeSQL([in]string sql) raises (SQLException); //------------------------------------------------------------------------- /** sets this connection's auto-commit mode. <p> If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either the method <member scope="com::sun::star::sdbc">XConnection::commit()</member> or the method <member scope="com::sun::star::sdbc">XConnection::rollback()</member> . By default, new connections are in auto-commit mode. </p> <p> The commit occurs when the statement completes or the next execute occurs, whichever comes first. In the case of statements returning a ResultSet, the statement completes when the last row of the ResultSet has been retrieved or the ResultSet has been closed. In advanced cases, a single statement may return multiple results as well as output parameter values. In these cases the commit occurs when all results and output parameter values have been retrieved. </p> @param autoCommit <TRUE/> enables auto-commit; <FALSE/> disables auto-commit. @throws SQLException if a database access error occurs. */ void setAutoCommit([in] boolean autoCommit) raises (SQLException); //------------------------------------------------------------------------- /** gets the current auto-commit state. @returns the current state of auto-commit mode. @throws SQLException if a database access error occurs. @see setAutoCommit */ boolean getAutoCommit() raises (SQLException); //------------------------------------------------------------------------- /** makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by the Connection. This method should be used only when auto-commit mode has been disabled. @throws SQLException if a database access error occurs. @see setAutoCommit */ void commit() raises (SQLException); //------------------------------------------------------------------------- /** drops all changes made since the previous commit/rollback and releases any database locks currently held by this Connection. This method should be used only when auto-commit has been disabled. @throws SQLException if a database access error occurs. @see setAutoCommit */ void rollback() raises (SQLException); //------------------------------------------------------------------------- /** tests to see if a connection is closed. <p> <b> Note: </b> A Connection is automatically closed if no one references it anymore. Certain fatal errors also result in a closed Connection. </p> @returns <TRUE/> if the connection is closed; <FALSE/> if it's still open. @throws SQLException if a database access error occurs. */ boolean isClosed() raises (SQLException); //------------------------------------------------------------------------- /** gets the metadata regarding this connection's database. <p> A Connection's database is able to provide information describing its tables, its supported SQL grammar, its stored procedures, the capabilities of this connection, and so on. This information is made available through a DatabaseMetaData object. </p> @returns a DatabaseMetaData object for this Connection. @throws SQLException if a database access error occurs. */ XDatabaseMetaData getMetaData() raises (SQLException); //------------------------------------------------------------------------- /** puts this connection in read-only mode as a hint to enable database optimizations. <p> <b> Note: </b> This method cannot be called while in the middle of a transaction. Calling setReadOnly with <TRUE/> does not necessarily cause writes to be prohibited. </p> @param readONly <TRUE/> enables read-only mode; <FALSE/> disables read-only mode. @throws SQLException if a database access error occurs. */ void setReadOnly([in]boolean readOnly) raises (SQLException); //------------------------------------------------------------------------- /** tests to see if the connection is in read-only mode. @returns <TRUE/> if connection is read-only and <FALSE/> otherwise. @throws SQLException if a database access error occurs. */ boolean isReadOnly() raises (SQLException); //------------------------------------------------------------------------- /** sets a catalog name in order to select a subspace of this Connection's database in which to work. If the driver does not support catalogs, it will silently ignore this request. @param catalog the name of the catalog. @throws SQLException if a database access error occurs. */ void setCatalog([in]string catalog) raises (SQLException); //------------------------------------------------------------------------- /** returns the Connection's current catalog name. @returns the current catalog name or an empty string. @throws SQLException if a database access error occurs. */ string getCatalog() raises (SQLException); //------------------------------------------------------------------------- /** attempts to change the transaction isolation level to the one given. <p> The constants defined in <type scope="com::sun::star::sdbc">TransactionIsolation</type> are the possible transaction isolation levels. </p> <p> <b> Note: </b> This method cannot be called while in the middle of a transaction. </p> @param level one of the TransactionIsolation values with the exception of NONE; some databases may not support other values. @throws SQLException if a database access error occurs. @see com::sun::star::sdbc::XDatabaseMetaData::supportsTransactionIsolationLevel() */ void setTransactionIsolation([in]long level) raises (SQLException); //------------------------------------------------------------------------- /** gets this Connection's current transaction isolation level. @returns the current TransactionIsolation mode value. @throws SQLException if a database access error occurs. */ long getTransactionIsolation() raises (SQLException); //------------------------------------------------------------------------- /** gets the type map object associated with this connection. Only drivers which implement the custom type mapping facility will return an object otherwise NULL could be returned. <p> Unless the application has added an entry to the type map, the map returned will be empty. </p> @returns the XNameAccess object associated with this Connection object. @throws SQLException if a database access error occurs. */ com::sun::star::container::XNameAccess getTypeMap() raises (SQLException); //------------------------------------------------------------------------- /** installs the given type map as the type map for this connection. The type map will be used for the custom mapping of SQL structured types and distinct types. <p> Only if the driver supports custom type mapping is the setting of a map allowed. </p> @param typeMap set the XNameAccess object associated with this Connection object. @throws SQLException if a database access error occurs. */ void setTypeMap([in]com::sun::star::container::XNameAccess typeMap) raises (SQLException); }; //============================================================================= }; }; }; }; /*=========================================================================== ===========================================================================*/ #endif