/*************************************************************************
*
* 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
*
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef __com_sun_star_sdb_QueryDesign_idl__
#define __com_sun_star_sdb_QueryDesign_idl__
#ifndef __com_sun_star_frame_XController_idl__
#include
#endif
#ifndef __com_sun_star_lang_XInitialization_idl__
#include
#endif
#ifndef __com_sun_star_frame_XDispatchProvider_idl__
#include
#endif
#ifndef __com_sun_star_form_FormController_idl__
#include
#endif
module com { module sun { module star { module sdb {
//=============================================================================
/** implements a component which allows the creation of SQL statements.
This service implements a user interface for creating SQL statements either through a graphical design
interface or simply to enter the SQL statement directly.
The design view of the QueryDesign is divided into two parts. The first part contains the table windows
where columns can be selected for the SQL statement. The second part contains the columns which should appear
in the selection of the SQL statement or criterias which narrow the query.
Operation Modes
A QueryDesign
component has 3 operation modes, which control what kind of object is edited:
Initialization
Initialization is done using the XInitialization interface,
which expects a sequence of objects being either NamedValues or
PropertyValues. The following parameters are supported at
initialization time:
- Frame
has to be an XFrame interface specifying the frame to plug the
QueryDesign component into.
This parameter is mandatory.
- DataSourceName
specifies the name of the globally registered DataSource for which a query, view, or SQL
command is to be designed.
The DataSourceName may be omitted if and only if a valid ActiveConnection
parameter is present.
If both DataSourceName
and ActiveConnection
are present, the former
is ignored.
- ActiveConnection
specifies the connection to work with.
May be ommitted if and only if a valid DataSourceName parameter is supplied.
- Command
specifies the name of the query or view to design, or, in case of the CommandType
being CommandType::COMMAND, the initial SQL command.
If this parameter is not present, a new query/view will be designed, respectively the initial
command will be empty.
- CommandType
specifies the type of object which should be designed. The following options are
supported:
- CommandType::QUERY specifies the designer should operate in
query mode, that is, an existing client-side query should be
designed, or a new query should be created, depending on the presence of the
Command parameter.
If the DataSourceName parameter is present, the query is
looked up in the specified data source. Otherwise, the designer tries to determine
the data source which the ActiveConnection belongs
to, and looks up the query there.
- CommandType::COMMAND specifies the designer should operate in
command mode, that is, a standalone SQL command
should be designed. When the user attempts to save the designed SQL statement,
the ActiveCommand and EscapeProcessing properties
of the designer are updated.
- CommandType::TABLE specifies the designer should operate in
view mode, that is, an existing or a new
server-side view should be designed, depending on the presence of the
Command parameter.
If the DataSourceName parameter is present, the view is
looked up in a newly created connection for the specified data source. Otherwise,
it is looked up in the connection given as ActiveConnection.
If not present, this parameter defaults to CommandType::QUERY.
- EscapeProcessing
Specifies whether or not escape processing should be initially enabled in the query designer. If set
to , then the designer can operate in text view only (as opposed to the graphical view). The
GraphicalDesign parameter will be ignored then, and assumed to be .
If not present, is assumed for this parameter.
- GraphicalDesign
This value indicates whether the designer should be opened in the graphical design view
() or in the text view ().
If not present, is assumed for this parameter.
There's a number of legacy settings which are recognized for compatibility reasons, though
you're discouraged from using them:
- CurrentQuery
is the same as Command, and implies a CommandType of
CommandType::QUERY
- QueryDesignView
is the same as GraphicalDesign.
- IndependentSQLCommand
is the same as Command, and implies a CommandType of
CommandType::COMMAND
- CreateView
implies a CommandType of CommandType::TABLE
@see com::sun::star::sdb::ContentLoader
*/
published service QueryDesign
{
/** allows the component to be plugged into frames.
*/
interface com::sun::star::frame::XController;
/** is used to initialize the QueryDesign.
See chapter Initialization for details.
*/
interface com::sun::star::lang::XInitialization;
/** reflects the designed SQL command at the moment it was last saved by the user.
*/
[readonly, property] string ActiveCommand;
/** specifies whether the user enabled escape processing for the statement being designed.
@see DataAccessDescriptor::EscapeProcessing
@since OOo 2.4
*/
[readonly, property, optional] boolean EscapeProcessing;
};
//=============================================================================
}; }; }; };
#endif