/*************************************************************************
 *
 *  $RCSfile: RowSet.idl,v $
 *
 *  $Revision: 1.7.4.2 $
 *
 *  last change: $Author: mi $ $Date: 2003/01/21 17:46:02 $
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 by Sun Microsystems, Inc.
 *  901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License version 2.1, as published by the Free Software Foundation.
 *
 *  This library 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 for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *  MA  02111-1307  USA
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.1 (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.openoffice.org/license.html.
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *  Copyright: 2000 by Sun Microsystems, Inc.
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/
#ifndef __com_sun_star_sdb_RowSet_idl__ 
#define __com_sun_star_sdb_RowSet_idl__ 
 
#ifndef __com_sun_star_sdbc_RowSet_idl__ 
#include <com/sun/star/sdbc/RowSet.idl> 
#endif 
 
 module com {  module sun {  module star {  module sdbc { 
interface XConnection; 
};};};}; 
 
#ifndef __com_sun_star_sdb_ResultSet_idl__ 
#include <com/sun/star/sdb/ResultSet.idl> 
#endif 
 
#ifndef __com_sun_star_sdb_XCompletedExecution_idl__
#include <com/sun/star/sdb/XCompletedExecution.idl>
#endif

 module com {  module sun {  module star {  module sdbcx { 
interface XDeleteRows; 
};};};}; 
 
 module com {  module sun {  module star {  module sdb { 
 
interface XRowSetApproveBroadcaster; 
interface XResultSetAccess; 
 
 
// DocMerge from xml: service com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet
/** is a client side RowSet, which use retrieves is data based on a database table,
	a query or a SQL command or by a rowset reader, who mustn't support SQL.
	The connection of the rowset is typically a named DataSource or a DataAccess component
	or a previous instanciated connection.
	<p>
	Depending on the 
	<type scope="com::sun::star::sdbc">ResultSetConcurrency</type>
	, the RowSet caches all data or uses
	an optimized way for retrieving the data, such as, refetching rows by their keys or
	if provided, by their bookmarks.
	</p>
	<p>
	In addition, it provides events for RowSet navigation and RowSet modifications
	to approve the actions and to react on them.	
	@see com::sun::star::sdb::RowChangeAction
	@see com::sun::star::sdb::RowChangeEvent
	</p>
 */
service RowSet
{ 
	// DocMerge: empty anyway
	service com::sun::star::sdbc::RowSet; 
	
	// DocMerge: empty anyway
	service com::sun::star::sdb::ResultSet; 
 
	 
	/** can be used to allow an interaction handler to supply missing data during a execute process.

		<p>If you want a row set to be based on a parametrized query, you will usually use
		the <type scope="com::sun::star::sdbc">XParameters</type> interface.<br/>
		However, you can also choose to let an interaction handler supply such data. For this, you may
		for instance instantiate an <type>InteractionHandler</type>, which asks the user for the
		data, or you may write your own one, which supplies the data from somewhere else.</p>

		@see com::sun::star::sdb::InteractionHandler
	*/
	interface com::sun::star::sdb::XCompletedExecution;

	/** approving of actions performed on the rowset.
	 */
	interface XRowSetApproveBroadcaster; 
 
	 
	// DocMerge from xml: service com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet: interface com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::XResultSetAccess
	/** creates a second result set which is based on the same data.
		<p>
		The new result set is interoperable with the row set which created it, 
		e.g., you can exchange bookmarks between both sets.
		</p>
		<p>
		If the row set is not alive (i.e., it was not executed before), 
		<NULL/> 
		is returned.
		</p>
	 	 	 	 	 	 	 	 	 	 	 	 */
	interface XResultSetAccess; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::ActiveConnection
	/** is the connection generated by a DataSource or by a URL. It could
		also be set from outside. When set from outside the RowSet is not responsible for the closing of the connection.
	 */
	[property] com::sun::star::sdbc::XConnection ActiveConnection; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::DataSourceName
	/** is the name of the datasource to use, this could be a named datasource
		or the URL of a data access component.
	 */
	[property] string DataSourceName; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::Command
	/** is the command which should be executed, the type of command depends
		on the CommandType.
		@see com::sun::star::sdb::CommandType
	 */
	[property] string Command; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::CommandType
	/** is the type of the command.
		@see com::sun::star::sdb::CommandType
		@see com::sun::star::sdb::CommandType
	 */
	[property] long CommandType; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::ActiveCommand
	/** is the command which is currently used.
		@see com::sun::star::sdb::CommandType
	 */
	[readonly, property] string ActiveCommand; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::IgnoreResult
	/** indicates whether all results should be discarded or not.
	 */
	[property] boolean IgnoreResult; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::Filter
	/** additional filter for a rowset.
	 */
	[property] string Filter; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::ApplyFilter
	/** indicates whether the filter should be applied or not,
		default is <FALSE/>.
	 */
	[property] boolean ApplyFilter; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::Order
	/** is a additional sort order definition for a rowset.
	 */
	[property] string Order; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::Privileges
	/** indicates the privileges for insert, update, and delete.
		@see com::sun::star::sdbcx::Privilege
	 */
	[readonly, property] long Privileges; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::IsModified
	/** indicates that the current row is modified.
	 */
	[readonly, property] boolean IsModified; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::IsNew
	/** indicates that the current row is going to be inserted to the database.
	 */
	[readonly, property] boolean IsNew; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::RowCount
	/** contains the number of rows accessed in a the data source.
	 */
	[readonly, property] long RowCount; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::IsRowCountFinal
	/** indicates that all rows of te row set have been counted.
	 */
	[readonly, property] boolean IsRowCountFinal; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::UpdateTableName
	/** is the name of the table which should be updated, this is usually used
		for queries which relate to more than one table. 
		
		@optional 
	 */
	[optional, property] string UpdateTableName; 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::UpdateCatalogName
	/** is the name of the table catalog 
	
		@optional
	 */
	[optional, property] string UpdateCatalogName; 
 
	 
	// DocMerge from xml: property com::sun::star::sdbc::com::sun::star::sdbcx::com::sun::star::sdb::RowSet::UpdateSchemaName
	/** is the name of the table schema. 
	
		@optional
	 */
	[optional, property] string UpdateSchemaName; 
}; 
 
//============================================================================= 
 
}; }; }; }; 
 
/*=========================================================================== 
	$Log: RowSet.idl,v $
	Revision 1.7.4.2  2003/01/21 17:46:02  mi
	merged src641 odk changes
	
	Revision 1.8  2002/10/03 13:06:35  mi
	#94968# IDL reviews merged
	
	Revision 1.7.2.2  2002/08/05 13:01:36  fs
	added XCompletedExecution
	
	Revision 1.7.2.1  2002/02/18 10:23:56  oj
	#97563# parameter,return value and exception description
	
	Revision 1.7  2001/10/25 15:00:32  mi
	proofreading and corrections from Richard Holt
	
	Revision 1.6  2001/01/24 09:56:11  fs
	#83074# extended the doc for the XResultSetAccess interface
	
	Revision 1.5  2001/01/23 10:08:26  mi
	optional interfaces now marked as [optional] instead of just a prosa description of this fact
	
	Revision 1.4  2000/12/14 12:53:38  mi
	<true></true> -> <TRUE/> and same with FALSE
	
	Revision 1.3  2000/11/08 12:43:31  mi
	moved from api
	
	Revision 1.1.1.1  2000/09/18 23:35:36  hjs
	initial import
	
	Revision 1.10  2000/09/11 11:52:40  mi
	documentation merged from XML
	 
	Revision 1.8  2000/01/14 08:15:28  dg 
	#70278# IsInsertOnly renamed to IgnoreResult 
	 
	Revision 1.7  1999/12/20 16:32:43  dg 
	#70278# files removed and new doc 
	 
	Revision 1.6  1999/12/10 16:56:32  dg 
	#70278# documentation 
 
	Revision 1.5  1999/12/10 12:40:16  dg 
	#70278# documentation 
 
	Revision 1.4  1999/12/09 12:42:21  dg 
	#70278# documentation 
 
	Revision 1.3  1999/12/08 14:42:25  dg 
	#70278# new Composer files 
 
	Revision 1.2  1999/11/25 08:48:50  dg 
	adjustments 
 
	Revision 1.1  1999/11/24 08:39:01  dg 
	new Star Data Beans 
 
===========================================================================*/ 
#endif 
