diff options
Diffstat (limited to 'offapi/com/sun/star/sdb/QueryDesign.idl')
-rw-r--r-- | offapi/com/sun/star/sdb/QueryDesign.idl | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdb/QueryDesign.idl b/offapi/com/sun/star/sdb/QueryDesign.idl new file mode 100644 index 000000000..2dd2fd6eb --- /dev/null +++ b/offapi/com/sun/star/sdb/QueryDesign.idl @@ -0,0 +1,185 @@ +/* -*- 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_sdb_QueryDesign_idl__ +#define __com_sun_star_sdb_QueryDesign_idl__ + +#include <com/sun/star/frame/XController.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/form/FormController.idl> + +module com { module sun { module star { module sdb { + +/** implements a component which allows the creation of SQL statements. + + <p>This service implements a user interface for creating SQL statements either through a graphical design + interface or simply to enter the SQL statement directly.</p> + + <p>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 criteria which narrow the query.</p> + + <h3>Operation Modes</h3> + + <p>A <code>QueryDesign</code> component has 3 operation modes, which control what kind of object is edited: + <ul><li><a name="query_mode"></a><b>Query Mode</b> + <p>In <code>Query Mode</code>, the designer is used to modify an existing or create a new client-side + query.</p></li> + + <li><a name="view_mode"</a><b>View Mode</b> + <p>In <code>View Mode</code>, the designer is used to modify an existing or create a new server-side + view.</p> + <p>The view which is being designed must support the com::sun::star::sdbcx::XAlterView + interface, except when a new view is being designed. In the latter case, the designer closes itself + automatically when <code>XAlterView</code> is not supported, and the view has been saved.</p></li> + + <li><a name="command_mode"</a><b>Command Mode</b> + <p>In <code>Command Mode</code>, the designer is used to design an standalone SQL command.</p> + <p>The client of the designer is then responsible to listen at changes in the + #ActiveCommand and #EscapeProcessing members, which are updated + every time the user saves the command.</p></li> + </ul></p> + + <h3><a name="initialization"></a>Initialization</h3> + + <p>Initialization is done using the com::sun::star::lang::XInitialization interface, + which expects a sequence of objects being either com::sun::star::beans::NamedValues or + com::sun::star::beans::PropertyValues. The following parameters are supported at + initialization time: + <ul> + <li><b>Frame</b><br/> + has to be a com::sun::star::frame::XFrame interface specifying the frame to plug the + QueryDesign component into.<br/> + This parameter is mandatory. + </li> + + <li><a name="data_source"></a><b>DataSourceName</b><br/> + specifies the name of the globally registered DataSource for which a query, view, or SQL + command is to be designed.<br/> + The DataSourceName may be omitted if and only if a valid <a href="#active_connection">ActiveConnection</a> + parameter is present.<br/> + If both <code>DataSourceName</code> and <code>ActiveConnection</code> are present, the former + is ignored. + </li> + + <li><a name="active_connection"></a><b>ActiveConnection</b><br/> + specifies the connection to work with.<br/> + May be omitted if and only if a valid <a href="#data_source">DataSourceName</a> parameter is supplied. + </li> + + <li><a name="command"></a><b>Command</b><br/> + specifies the name of the query or view to design, or, in case of the <a href="#command_type">CommandType</a> + being CommandType::COMMAND, the initial SQL command.<br/> + If this parameter is not present, a new query/view will be designed, respectively the initial + command will be empty. + </li> + + <li><a name="command_type"></a><b>CommandType</b><br/> + specifies the type of object which should be designed. The following options are + supported: + <ul><li>CommandType::QUERY specifies the designer should operate in + <a href="#query_mode">query mode</a>, that is, an existing client-side query should be + designed, or a new query should be created, depending on the presence of the + <a href="#command">Command</a> parameter.<br/> + If the <a href="#data_source">DataSourceName</a> parameter is present, the query is + looked up in the specified data source. Otherwise, the designer tries to determine + the data source which the <a href="#active_connection">ActiveConnection</a> belongs + to, and looks up the query there.</li> + + <li>CommandType::COMMAND specifies the designer should operate in + <a href="#command_mode">command mode</a>, 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.</li> + + <li>CommandType::TABLE specifies the designer should operate in + <a href="#view_mode">view mode</a>, that is, an existing or a new + server-side view should be designed, depending on the presence of the + <a href="#command">Command</a> parameter.<br/> + If the <a href="#data_source">DataSourceName</a> 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 <a href="#active_connection">ActiveConnection</a>.</li> + </ul> + If not present, this parameter defaults to CommandType::QUERY. + </li> + + <li><b>EscapeProcessing</b><br/> + Specifies whether or not escape processing should be initially enabled in the query designer. If set + to `FALSE`, then the designer can operate in text view only (as opposed to the graphical view). The + <a href="#graphical_design">GraphicalDesign</a> parameter will be ignored then, and assumed to be `FALSE`.<br/> + If not present, `TRUE` is assumed for this parameter.</li> + + <li><a name="graphical_design"></a><b>GraphicalDesign</b><br/> + This value indicates whether the designer should be opened in the graphical design view + (`TRUE`) or in the text view (`FALSE`).<br/> + If not present, `FALSE` is assumed for this parameter. + </li> + </ul> + </p> + + <p>There's a number of legacy settings which are recognized for compatibility reasons, though + you're discouraged from using them: + <ul> + <li><b>CurrentQuery</b><br/> + is the same as Command, and implies a <a href="#command_type">CommandType</a> of + CommandType::QUERY</li> + + <li><b>QueryDesignView</b><br/> + is the same as <a href="#graphical_design">GraphicalDesign</a>.</li> + + <li><b>IndependentSQLCommand</b><br/> + is the same as Command, and implies a <a href="#command_type">CommandType</a> of + CommandType::COMMAND</li> + + <li><b>CreateView</b><br/> + implies a <a href="#command_type">CommandType</a> of CommandType::TABLE</li> + </ul> + + @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. + + <p>See chapter <a href="#initialization">Initialization</a> for details.</p> + */ + 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |