diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/sdb | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
258 files changed, 25513 insertions, 0 deletions
diff --git a/offapi/com/sun/star/sdb/BooleanComparisonMode.idl b/offapi/com/sun/star/sdb/BooleanComparisonMode.idl new file mode 100644 index 000000000..0234e736e --- /dev/null +++ b/offapi/com/sun/star/sdb/BooleanComparisonMode.idl @@ -0,0 +1,64 @@ +/* -*- 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_BooleanComparisonMode_idl__ +#define __com_sun_star_sdb_BooleanComparisonMode_idl__ + + +module com { module sun { module star { module sdb { + + +/** specifies different mode how boolean comparison predicates are to be generated + by a SingleSelectQueryComposer. + */ +constants BooleanComparisonMode +{ + /** denotes the default comparison + + <p>Most databases support comparing boolean expressions or column values directly with + integer values: <code><em>column</em> = 0</code> respectively <code><em>column</em> = 1</code>.</p> + */ + const long EQUAL_INTEGER = 0; + + /** requires to use <code>IS <em>boolean_literal</em></code> for boolean comparison. + + <p>That is, the generated comparison predicates will be <code><em>column</em> IS TRUE</code> resp. + <code><em>column</em> IS FALSE</code>.</p> + */ + const long IS_LITERAL = 1; + + /** requires to use <code>= <em>boolean_literal</em></code> for boolean comparison. + + <p>That is, the generated comparison predicates will be <code><em>column</em> = TRUE</code> resp. + <code><em>column</em> = FALSE</code>.</p> + */ + const long EQUAL_LITERAL = 2; + + /** requires to use an Microsoft Access compatible syntax for boolean comparison. + */ + const long ACCESS_COMPAT = 3; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/CallableStatement.idl b/offapi/com/sun/star/sdb/CallableStatement.idl new file mode 100644 index 000000000..1769b61c3 --- /dev/null +++ b/offapi/com/sun/star/sdb/CallableStatement.idl @@ -0,0 +1,47 @@ +/* -*- 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_CallableStatement_idl__ +#define __com_sun_star_sdb_CallableStatement_idl__ + +#include <com/sun/star/sdbc/CallableStatement.idl> + +#include <com/sun/star/sdb/PreparedStatement.idl> + + module com { module sun { module star { module sdb { + + +/** represents a procedure call. The service differs only in the access + of the columns and parameters to the service + com::sun::star::sdbc::CallableStatement. +*/ +published service CallableStatement +{ + service com::sun::star::sdbc::CallableStatement; + + service com::sun::star::sdb::PreparedStatement; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Column.idl b/offapi/com/sun/star/sdb/Column.idl new file mode 100644 index 000000000..42fe706a9 --- /dev/null +++ b/offapi/com/sun/star/sdb/Column.idl @@ -0,0 +1,48 @@ +/* -*- 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_Column_idl__ +#define __com_sun_star_sdb_Column_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + +#include <com/sun/star/sdb/ColumnSettings.idl> + + module com { module sun { module star { module sdb { + + +/** describes the common properties of a database column. + */ +published service Column +{ + service com::sun::star::sdbcx::Column; + + + /** is used for customization of data appearance. + */ + service com::sun::star::sdb::ColumnSettings; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ColumnDescriptorControl.idl b/offapi/com/sun/star/sdb/ColumnDescriptorControl.idl new file mode 100644 index 000000000..b12645563 --- /dev/null +++ b/offapi/com/sun/star/sdb/ColumnDescriptorControl.idl @@ -0,0 +1,40 @@ +/* -*- 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_ColumnDescriptorControl_idl__ +#define __com_sun_star_sdb_ColumnDescriptorControl_idl__ + +#include <com/sun/star/awt/UnoControl.idl> + + + module com { module sun { module star { module sdb { + + +/** specifies a column descriptor control. + */ +service ColumnDescriptorControl +{ + service com::sun::star::awt::UnoControl; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ColumnDescriptorControlModel.idl b/offapi/com/sun/star/sdb/ColumnDescriptorControlModel.idl new file mode 100644 index 000000000..079646ab2 --- /dev/null +++ b/offapi/com/sun/star/sdb/ColumnDescriptorControlModel.idl @@ -0,0 +1,79 @@ +/* -*- 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_ColumnDescriptorControlModel_idl__ +#define __com_sun_star_sdb_ColumnDescriptorControlModel_idl__ + +#include <com/sun/star/awt/UnoControlModel.idl> + + + module com { module sun { module star { + module sdbc { + interface XConnection; + }; + module beans { + interface XPropertySet; + };};};}; + + module com { module sun { module star { module sdb { + + +/** specifies the standard model of a ColumnDescriptorControl. + */ +service ColumnDescriptorControlModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the border style of the control. + + <pre> + 0: No border + 1: 3D border + 2: simple border + </pre> + */ + [property] short Border; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + /** specifies the column descriptor where the values will be stored in. + */ + [property] ::com::sun::star::beans::XPropertySet Column; + + /** specifies the connection to a database. + */ + [property] ::com::sun::star::sdbc::XConnection ActiveConnection; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ColumnSettings.idl b/offapi/com/sun/star/sdb/ColumnSettings.idl new file mode 100644 index 000000000..38d60e5c2 --- /dev/null +++ b/offapi/com/sun/star/sdb/ColumnSettings.idl @@ -0,0 +1,119 @@ +/* -*- 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_ColumnSettings_idl__ +#define __com_sun_star_sdb_ColumnSettings_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdb { + + +/** describes the common properties of a database column. + */ +published service ColumnSettings +{ + interface com::sun::star::beans::XPropertySet; + + + /** contains the index of the number format that is used for the + column. + + <p>The proper value can be determined by using the + com::sun::star::util::XNumberFormatter + interface. + </p> + <p> + If the value is + `VOID` + , a default number format should be used according to the datatype of the column. + </p> + + */ + [property] long FormatKey; + + + /** specifies the alignment of columns text. + + <pre> + 0: left + 1: center + 2: right + </pre> + <p> + If the value is + `VOID` + , a default alignment should be used according + to the datatype of the column. + </p> + */ + [property] long Align; + + + /** specifies the width of the column displayed in a grid, the unit is 10THMM. + + <p> + If the value is + `VOID` + , a default width should be used according to the label of the column. + </p> + */ + [property] long Width; + + + /** Position of the column within a grid. + + <p> + If the value is + `VOID` + , the default position should be taken according. + </p> + */ + [property] long Position; + + + /** determines whether the column should be displayed or not. + */ + [property] boolean Hidden; + + + /** indicates a control model which defines the settings for layouting. + The default is `NULL`. + */ + [optional, property] com::sun::star::beans::XPropertySet ControlModel; + + /** describes an optional help text which can be used by UI components + when representing this column. + The default is `NULL`. + */ + [optional, property] string HelpText; + + /** describes the default value which should be displayed by a control when moving to a new row. + The default is `NULL`. + */ + [optional, property] string ControlDefault; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/CommandDefinition.idl b/offapi/com/sun/star/sdb/CommandDefinition.idl new file mode 100644 index 000000000..0a27a049d --- /dev/null +++ b/offapi/com/sun/star/sdb/CommandDefinition.idl @@ -0,0 +1,38 @@ +/* -*- 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_CommandDefinition_idl__ +#define __com_sun_star_sdb_CommandDefinition_idl__ + +#include <com/sun/star/sdbcx/XRename.idl> + + module com { module sun { module star { module sdb { + +/** + @since LibreOffice 4.1 + */ +service CommandDefinition : com::sun::star::sdbcx::XRename; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/CommandType.idl b/offapi/com/sun/star/sdb/CommandType.idl new file mode 100644 index 000000000..60a32b584 --- /dev/null +++ b/offapi/com/sun/star/sdb/CommandType.idl @@ -0,0 +1,52 @@ +/* -*- 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_CommandType_idl__ +#define __com_sun_star_sdb_CommandType_idl__ + + module com { module sun { module star { module sdb { + + +/** indicates the type of a command. + */ +published constants CommandType +{ + + /** indicates that a command contains a table name, which can be used to + process a command like "select * from tablename". + */ + const long TABLE = 0; + + /** indicates that a command contains a name of a query component, which + contains a certain statement. + */ + const long QUERY = 1; + + /** indicates that the command is an SQL-Statement. + */ + const long COMMAND = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Connection.idl b/offapi/com/sun/star/sdb/Connection.idl new file mode 100644 index 000000000..e4232d28b --- /dev/null +++ b/offapi/com/sun/star/sdb/Connection.idl @@ -0,0 +1,85 @@ +/* -*- 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_Connection_idl__ +#define __com_sun_star_sdb_Connection_idl__ + +#include <com/sun/star/container/XChild.idl> + +#include <com/sun/star/sdbc/Connection.idl> + +#include <com/sun/star/sdbcx/DatabaseDefinition.idl> + +module com { module sun { module star { module lang { + published interface XMultiServiceFactory; +};};};}; + + module com { module sun { module star { module sdb { + + published interface XSQLQueryComposerFactory; + published interface XQueriesSupplier; + published interface XCommandPreparation; + + module application { interface XTableUIProvider; }; + +/** extends the + com::sun::star::sdbc::Connection + of SDBC by providing the data definitions of a connected database. + */ +published service Connection +{ + service com::sun::star::sdbc::Connection; + + /** access to the owning data source. + */ + interface com::sun::star::container::XChild; + + /** interface for complex command execution. + */ + interface XCommandPreparation; + + /** access to the database definition information of the connection. + */ + service com::sun::star::sdbcx::DatabaseDefinition; + + /** returns a container of associated queries. + */ + interface XQueriesSupplier; + + /** returns a tool for composing queries. + */ + interface XSQLQueryComposerFactory; + + /** allows the creation of different services which can only exists with a connection. + */ + [optional] interface com::sun::star::lang::XMultiServiceFactory; + + /** allows the connection to overrule the database application's default + user interface for tables. + */ +// [optional] interface com::sun::star::sdb::application::XTableUIProvider; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ContentLoader.idl b/offapi/com/sun/star/sdb/ContentLoader.idl new file mode 100644 index 000000000..85cb69e66 --- /dev/null +++ b/offapi/com/sun/star/sdb/ContentLoader.idl @@ -0,0 +1,93 @@ +/* -*- 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_ContentLoader_idl__ +#define __com_sun_star_sdb_ContentLoader_idl__ + +#include <com/sun/star/frame/FrameLoader.idl> + +module com { module sun { module star { module sdb { + +/** implements a loader for various datasource-related user interface components. + + <p>Usually, you don't deal with this loader directly. Instead, use an instance with + the com::sun::star::frame::XComponentLoader interface, and pass + one of the below-mentioned URLs to it.</p> + + @see com::sun::star::frame::XComponentLoader + @see com::sun::star::frame::Desktop +*/ +published service ContentLoader +{ + /** ensures the basic functionality. + + <p> + Supporting this service ensures that you can plug any of the components + the loader can create into an arbitrary frame. + </p> + + The loader should be registered for the URL scheme + <b> + .component:DB/ * + </b> + , the concrete URLs supported are: + <ul> + <li><b>.component:DB/DataSourceBrowser</b><br/> + Using this URL creates an instance of the + com::sun::star::sdb::DataSourceBrowser + service and plugs it into the frame passed to the loader. + </li> + <li><b>.component:DB/FormGridView</b><br/> + Using this URL creates an instance of the + com::sun::star::sdb::ExternalSourceBrowser + service and plugs it into the frame passed to the loader. + </li> + <li><b>.component:DB/QueryDesign</b><br/> + Using this URL creates an instance of the + com::sun::star::sdb::QueryDesign + service and plugs it into the frame passed to the loader. + </li> + <li><b>.component:DB/TableDesign</b><br/> + Using this URL creates an instance of the + com::sun::star::sdb::TableDesign + service and plugs it into the frame passed to the loader. + </li> + <li><b>.component:DB/RelationDesign</b><br/> + Using this URL creates an instance of the + com::sun::star::sdb::RelationDesign + service and plugs it into the frame passed to the loader. + </li> + </ul> + + The parameters passed to the + com::sun::star::frame::XFrameLoader::load() + are forwarded to the object being created, + in particular to its + com::sun::star::lang::XInitialization + interface. + **/ + service com::sun::star::frame::FrameLoader; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataAccessDescriptor.idl b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl new file mode 100644 index 000000000..d3734b764 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl @@ -0,0 +1,253 @@ +/* -*- 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_DataAccessDescriptor_idl__ +#define __com_sun_star_sdb_DataAccessDescriptor_idl__ + +#include <com/sun/star/sdbc/Connection.idl> +#include <com/sun/star/sdbc/ResultSet.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/beans/PropertyValue.idl> + +module com { module sun { module star { module sdb { + +/** descriptor for accessing basic data access objects. + + <p>Various components interacting with the database access world require to specify (or provide themselves) an object + such as a query, a table, a result set, a connection to a data source, a column within a table, and so on.<br/> + All of these objects are usually not specified with a single property, but with a set of properties, and for + various objects, various (but not always different) properties are needed.<br/> + The <code>DataAccessDescriptor</code> describes the super set of the properties for the most common + data access objects.</p> + + <p>Every component providing or requiring a DataAccessDescriptor for some functionality + is urged to specify which properties are mandatory, and which ones optional. Additionally, + it's free to specify any additional requirements about the relations of properties.</p> + + @since OOo 1.1.2 +*/ +published service DataAccessDescriptor +{ + /** specifies the name of the datasource to access. + + <p>This data source is usually used to create a Connection. If no DataSourceName is given + and the #DatabaseLocation and the #ConnectionResource are empty, then an #ActiveConnection + is required.</p> + + @see com::sun::star::sdb::DatabaseContext + @see ActiveConnection + */ + [optional, property] string DataSourceName; + + /** specifies the URL of the database file. + + <p>This database location is usually used to create a Connection. If no DatabaseLocation is given + and the #ConnectionResource is empty, then an #ActiveConnection is required.</p> + + @see com::sun::star::sdb::DatabaseContext + @see ActiveConnection + */ + [optional, property] string DatabaseLocation; + + /** specifies the database URL which locates a database driver. + + <p>This database URL is usually used to create a Connection. If no ConnectionResource is given, + then an #ActiveConnection is required.</p> + + @see com::sun::star::sdb::DatabaseContext + @see ActiveConnection + */ + [optional, property] string ConnectionResource; + + /** specifies additional info to use when creating a connection from a <code>ConnectionResource</code> + + <p>This member is evaluated only when <code>ConnectionResource</code> is used: In this case, + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo() is used + to create a connection for the given connection resource, instead of + com::sun::star::sdbc::XDriverManager::getConnection().</p> + + <p>If the sequence is empty, it is ignored.</p> + */ + [optional, property] sequence< ::com::sun::star::beans::PropertyValue > ConnectionInfo; + + /** is a connection to use. + + <p>This object is guaranteed to be a com::sun::star::sdbc::Connection, but usually + it will be a Connection from the module com::sun::star::sdb.<br/> + Especially in the case where no #DataSourceName is given, but + #CommandType is CommandType::QUERY, the ActiveConnection needs + to fully support the Connection service, to actually retrieve the query specified by + #Command</p> + + <p>If no ActiveConnection is given, then a #DataSourceName is required.</p> + + @see DataSourceName + */ + [optional, property] com::sun::star::sdbc::XConnection ActiveConnection; + + /** specifies the command to execute to retrieve a result set. + + <p>This property is only meaningful together with the #CommandType + property, thus either <em>both</em> or <em>none</em> of them are present.</p> + + @see CommandType + */ + [optional, property] string Command; + + + /** specifies the type of the command to be executed to retrieve a result set. + + <p>#Command needs to be interpreted depending on the value of this property.</p> + + <p>This property is only meaningful together with the #Command + property, thus either <em>both</em> or <em>none</em> of them are present.</p> + + @see com::sun::star::sdb::CommandType + */ + [optional, property] long CommandType; + + /** specifies an additional filter to optionally use. + + <p>The Filter string has to form a <code>WHERE</code>-clause, <em>without</em> the + <code>WHERE</code>-string itself.</p> + + <p>If a #DataSourceName, #Command and #CommandType + are specified, a RowSet can be created with this information. If the results provided by the + row set are to be additionally filtered, the Filter property can be used.</p> + + <p>Note that the Filter property does not make sense if a #ResultSet has been specified + in the DataAccessDescriptor.</p> + + @see com::sun::star::sdb::RowSet + @see ResultSet + */ + [optional, property] string Filter; + + /** specifies an additional <code>ORDER BY</code> clause which should be applied on top of + the given #Command. + + <p>The keyword <code>ORDER BY</code> itself is not part of this property.</p> + */ + [optional, property] string Order; + + /** specifies an additional <code>HAVING</code> clause which should be applied on top of + the given #Command. + + <p>The keyword <code>HAVING</code> itself is not part of this property.</p> + */ + [optional, property] string HavingClause; + + /** specifies an additional <code>GROUP BY</code> clause which should be applied on top of + the given #Command. + + <p>The keyword <code>GROUP BY</code> itself is not part of this property.</p> + */ + [optional, property] string GroupBy; + + /** specifies if the #Command should be analyzed on the client side before sending it + to the database server. + + <p>The default value of this property is `TRUE`. By switching it to `FALSE`, you can pass + backend-specific SQL statements, which are not standard SQL, to your database.</p> + + <p>This property is usually present together with the #Command and + #CommandType properties, and is evaluated if and only if #CommandType + equals CommandType::COMMAND.</p> + */ + [optional, property] boolean EscapeProcessing; + + /** specifies an already existent result set to use. + + <p>Usually, you use the properties #DataSourceName (alternatively + #ActiveConnection), #Command and #CommandType to specify + how to <em>obtain</em> a result set. However, in scenarios where the provider of a DataAccessDescriptor + has access to an already existent result set, it can pass it along for reusage. This is encouraged + to increase performance.</p> + + <p>The object will at least support the com::sun::star::sdbc::ResultSet service.</p> + + <p>Note that any superservices of com::sun::star::sdbc::ResultSet + are also allowed. Especially, this member can denote an instance of the + com::sun::star::sdb::RowSet, or an instance obtained + by calling com::sun::star::sdb::XResultSetAccess::createResultSet() + on such a com::sun::star::sdb::RowSet. This becomes important in + conjunction with the #Selection property.</p> + + @see com::sun::star::sdb::XResultSetAccess + */ + [optional, property] com::sun::star::sdbc::XResultSet ResultSet; + + /** specifies a selection to confine the records in a result set. + + <p>When you specify a result set either implicitly (#DataSourceName, #Command, + #CommandType) or explicitly (#ResultSet), the set of results can be + additionally refined with this property.</p> + + <p>The single elements of the #Selection are either record numbers (see + com::sun::star::sdbc::XResultSet::getRow()), or bookmarks (see + com::sun::star::sdbcx::XRowLocate::getBookmark()).<br/> + It is up to the component which provides or requires a DataAccessDescriptor to specify which of the + two alternatives it expects. If it does <em>not</em> specify this, then the property + #BookmarkSelection becomes mandatory.</p> + + <p>If the elements specify bookmarks, and a #ResultSet has been specified, then + this result set is required to support the com::sun::star::sdbcx::XRowLocate interface.</p> + */ + [optional, property] sequence< any > Selection; + + /** specifies how to interpret #Selection + + <p>If present, #BookmarkSelection specifies the semantics of #Selection. If + not present, it's up to the implementing component to specify this semantics.</p> + + <p>If `TRUE`, then the single elements of the array specified by #Selection are + bookmarks relative to the result set, if `FALSE`, they're record numbers.</p> + + @see com::sun::star::sdbcx::XRowLocate + @see com::sun::star::sdbc::XResultSet + @see com::sun::star::sdb::XResultSetAccess + */ + [optional, property] boolean BookmarkSelection; + + /** specifies a column name. + + <p>This property is usually used together with the #Command and + #CommandType properties.</p> + + @see Column + */ + [optional, property] string ColumnName; + + /** specifies a column object + + <p>For reasons of performance and saving resources, a supplier of an DataAccessDescriptor which is + used to describe a column object can pass this object directly, instead of specifying it only implicitly + with the #ColumnName property.</p> + + <p>The object will at least support the com::sun::star::sdbcx::Column service, but more + often it will even be a Column from the com::sun::star::sdb module.</p> + */ + [optional, property] com::sun::star::beans::XPropertySet Column; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataAccessDescriptorFactory.idl b/offapi/com/sun/star/sdb/DataAccessDescriptorFactory.idl new file mode 100644 index 000000000..61e01b2df --- /dev/null +++ b/offapi/com/sun/star/sdb/DataAccessDescriptorFactory.idl @@ -0,0 +1,39 @@ +/* -*- 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_DataAccessDescriptorFactory_idl__ +#define __com_sun_star_sdb_DataAccessDescriptorFactory_idl__ + +#include <com/sun/star/sdb/XDataAccessDescriptorFactory.idl> + + +module com { module sun { module star { module sdb { + + +/** allows creating instances of the DataAccessDescriptor service. +*/ +singleton DataAccessDescriptorFactory : XDataAccessDescriptorFactory; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataColumn.idl b/offapi/com/sun/star/sdb/DataColumn.idl new file mode 100644 index 000000000..46d28e3b5 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataColumn.idl @@ -0,0 +1,67 @@ +/* -*- 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_DataColumn_idl__ +#define __com_sun_star_sdb_DataColumn_idl__ + +#include <com/sun/star/sdb/ResultColumn.idl> + + module com { module sun { module star { module sdb { + + published interface XColumn; + published interface XColumnUpdate; + + +/** defines a column used for a result set which contains the data definition + and the data of the column of the current row of a result set. + */ +published service DataColumn +{ + service com::sun::star::sdb::ResultColumn; + + + /** is used to retrieve the columns value. + */ + interface XColumn; + + + /** is used to update the columns value. + */ + interface XColumnUpdate; + + + /** contains the column's value. This could be a constraint property, to + veto modifications, if a new value does not fit into rules + defined for the column. + */ + [optional, property] any Value; + + + /** contains the original value of the column. + */ + [optional, readonly, property] any OriginalValue; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataSettings.idl b/offapi/com/sun/star/sdb/DataSettings.idl new file mode 100644 index 000000000..6fd16d175 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataSettings.idl @@ -0,0 +1,84 @@ +/* -*- 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_DataSettings_idl__ +#define __com_sun_star_sdb_DataSettings_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/Color.idl> +#include <com/sun/star/awt/FontDescriptor.idl> + + module com { module sun { module star { module sdb { + + +/** extends the + com::sun::star::sdbcx::Table + with additional display information, sorting and filtering criteria. + + */ +published service DataSettings +{ + + /** additional filter for the data object. + */ + [property] string Filter; + + + /** indicates whether the filter should be applied or not, + default is `FALSE`. + */ + [property] boolean ApplyFilter; + + + /** is an additional sort order definition. + */ + [property] string Order; + + + /** specifies the font attributes for data displaying. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the height of a data row. + */ + [property] long RowHeight; + + + /** specifies the text color (RGB) for displaying text. + */ + [property] com::sun::star::util::Color TextColor; + + /** additional having clause for the data object. + */ + [optional,property] string HavingClause; + + /** additional group by for the data object. + */ + [optional,property] string GroupBy; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataSource.idl b/offapi/com/sun/star/sdb/DataSource.idl new file mode 100644 index 000000000..663595081 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataSource.idl @@ -0,0 +1,238 @@ +/* -*- 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_DataSource_idl__ +#define __com_sun_star_sdb_DataSource_idl__ + +#include <com/sun/star/io/XPersistObject.idl> + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/util/XFlushable.idl> + +#include <com/sun/star/util/XNumberFormatsSupplier.idl> + + + module com { module sun { module star { module sdbc { + published interface XIsolatedConnection; + published interface XDataSource; + };};};}; + + + module com { module sun { module star { module sdb { + + published interface XCompletedConnection; + published interface XQueryDefinitionsSupplier; + published interface XBookmarksSupplier; + + +/** is a factory to establish database connections. It should be registered at + a com::sun::star::uno::NamingService. + @see com::sun::star::sdb::DatabaseContext + */ +published service DataSource +{ + interface com::sun::star::beans::XPropertySet; + + + /** useful for establishing connections with the completion of connection parameters + provided during user interaction. + */ + interface XCompletedConnection; + + /** useful for establishing isolated connections which are not shared among others + as it is the case when using XCompletedConnection or com::sun::star::sdbc::XDataSource. + @see XCompletedConnection + @see com::sun::star::sdbc::XDataSource + @since OOo 1.1.2 + */ + interface com::sun::star::sdbc::XIsolatedConnection; + + + /** is provided to flush a DataSource within to a Database Context. + */ + interface com::sun::star::util::XFlushable; + + + /** provides the access to DataSource related queries. + <p> + The object returned by the + com::sun::star::sdb::XQueryDefinitionsSupplier::getQueryDefinitions() + supports the + com::sun::star::sdb::DefinitionContainer + service. + </p> + */ + interface XQueryDefinitionsSupplier; + + /* useful for establishing connections and to get and set the login timeout. + */ + interface com::sun::star::sdbc::XDataSource; + + /** provides access to bookmarks to documents associated with the data source + <p> + The object returned by the + com::sun::star::sdb::XBookmarksSupplier::getBookmarks() + supports the + com::sun::star::sdb::DefinitionContainer + service. + </p> + */ + [optional] interface XBookmarksSupplier; + + /** is the name of the data source. + + <p>If the data source is registered at the database context, then the <code>Name</code> property + denotes the registration name. Otherwise, the name property contains the URL of the file which the + database document associated with the data source is based on.</p> + + <p>If the same data source is registered under different names, the value of the <code>Name</code> + property is not defined.</p> + */ + [readonly, property] string Name; + + + /** indicates a database url of the form <br> + <code> jdbc:<em>subprotocol</em>:<em>subname</em></code> + or + <code>sdbc:<em>subprotocol</em>:<em>subname</em></code> + */ + [property] string URL; + + + /** is a list of arbitrary string tag/value pairs as connection arguments + + <p>The DataSource itself does not attempt to interpret any of those values.</p> + + <p>Instead, the values in this property have two use cases: + <ul><li>Upon creating a connection, for every value in this sequence it's checked + whether the com::sun::star::sdbc::XDriver which is to provide + the connection supports a setting with the respective name, using its + com::sun::star::sdbc::XDriver::getPropertyInfo() method.br/> + If so, the settings is passed to the driver's + com::sun::star::sdbc::XDriver::connect() method. If not, + the setting is ignored.</li> + <li>External components may use the settings to carry arbitrary information with + the data source. Usually, this is used to control the behavior of components + working with the data source.</li> + </ul> + */ + [property] sequence<com::sun::star::beans::PropertyValue> Info; + + /** is a convenience wrapper around the #Info property. + + <p>Since fiddling around with a sequence of property values is somewhat uncomfortable + in all known UNO language bindings (especially for tasks like simply changing the value + of an existing value), the #Settings property wraps the #Info + property for easier single-value access.</p> + + <p>You should use the #Settings property if you need to access a few properties only, + and the #Info property if you need access to all existent settings at once.</p> + + <p>The object represented by this property supports the com::sun::star::beans::PropertyBag + service. That is, you can at runtime add arbitrary new properties to the bag.</p> + + <p>Additionally, the property bag supports default values of properties, and thus the + com::sun::star::beans::XPropertyState interface. If you add an own property to + the bag using com::sun::star::beans::XPropertyContainer::addProperty(), you need + to specify an initial value, which is also used as default value (exceptions see below).</p> + + <p>Effectively, the property bag represented by <code>Settings</code> contains two classes of properties: + Pre-defined ones and user-defined ones.</p> + + <p><em>Pre-defined</em> properties are properties which are potentially used by the data source, the + application UI for the data source, or a particular backend driver employed by the data source. There's + a large set of such properties, no all of them are effectively used for a concrete data source, nonetheless, + they're all present in the <code>Settings</code>.<br/> + Such properties are not removable from the bag, that is, their + com::sun::star::beans::PropertyAttribute::REMOVABLE attribute is <em>not</em> set.<br/> + Usually, you'll find that all of this properties have the + com::sun::star::beans::PropertyState::PropertyState_DEFAULT_VALUE state.</p> + + <p><em>User-defined</em> properties are the ones which are added at runtime by any instance. They might or might + not be removable, this depends on whether or not the code adding them specifies the + com::sun::star::beans::PropertyAttribute::REMOVABLE attribute. Also, they might + or might not have a default value, determined by the + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT attribute at the time they're added + to the bag.</p> + + <p>When a data source is made persistent, then properties which are not removable (which are assumed to be the + pre-defined properties) are ignored when they are in <code>DEFAULT</code> state. All other properties are + always made persistent, except when an explicit + com::sun::star::beans::PropertyAttribute::TRANSIENT attribute prohibits this.</p> + + <p>Similar, when you obtain the #Info property of a <code>DataSource</code>, the + <code>Settings</code> bag is asked for all its property values, and the ones which are removable and + in state default are stripped, and <em>not</em> returned in the <code>Info</code> sequence.</p> + */ + [property, readonly, optional] com::sun::star::beans::XPropertySet Settings; + + /** determines a users login name. + */ + [property] string User; + + + /** determines a users password. The password is not persistent. + */ + [property] string Password; + + + /** indicates that a password is always necessary. + */ + [property] boolean IsPasswordRequired; + + + /** indicates that components displaying data obtained from this + data source should suppress columns used for versioning. + */ + [property] boolean SuppressVersionColumns; + + + /** determines whether modifications on the data source are allowed or not. + */ + [readonly, property] boolean IsReadOnly; + + + /** provides an object for formatting numbers. + */ + [readonly, property] com::sun::star::util::XNumberFormatsSupplier + NumberFormatsSupplier; + + + /** defines a list of tables, on which the DataSource should have it's focus. + If empty, all tables are rejected. + + */ + [property] sequence<string> TableFilter; + + + /** defines a list of table types, on which the DataSource should have it's focus. + If empty, all table types are rejected. + + */ + [property] sequence<string> TableTypeFilter; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DataSourceBrowser.idl b/offapi/com/sun/star/sdb/DataSourceBrowser.idl new file mode 100644 index 000000000..615fc0639 --- /dev/null +++ b/offapi/com/sun/star/sdb/DataSourceBrowser.idl @@ -0,0 +1,268 @@ +/* -*- 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_DataSourceBrowser_idl__ +#define __com_sun_star_sdb_DataSourceBrowser_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> +#include <com/sun/star/ui/XContextMenuInterception.idl> + +module com { module sun { module star { module sdb { + +/** implements a component which allows browsing the data sources registered on the system. + + <p> + This service implements a user interface for browsing data sources registered on the + com::sun::star::sdb::DatabaseContext + instance of the system. + </p> + + <p> + It is possible to navigate through all the data sources, it's queries and it's tables. + The queries/tables can be displayed in a grid-like view, where functionality for searching, + sorting, filtering, and such is provided. + </p> + + <p> + Usually, you won't instantiate this service directly, instead you use the dispatch mechanisms + of the application framework to load the URL <b>.component:DB/DataSourceBrowser</b> into an arbitrary + frame. This should involve a + com::sun::star::sdb::ContentLoader + service, which creates and initializes + the browser. + </p> + + <p> + Some aspects of the browser can be controlled from outside, e.g., + it is possible to dispatch a sort or filter + request, if a table or query is being displayed. + </p> + + <p + >The communication between the browser and external instances works in two ways. + <br/> + The way <em>in</em> is provided by the + com::sun::star::frame::XDispatchProvider + interface the service exports (Please see below for more details on this). + <br/> + The way <em>out</em> works in another way. There are several URLs which an external + instance can provide dispatches for (usually by implementing a + com::sun::star::frame::XDispatchProviderInterceptor + for the parent frame of the browser), thus indicating that the browser should provide special functionality. + <br/> + In this case, the browser displays and maintains some additional slots (to be more concrete: toolbox items), which, + upon triggering, call the + com::sun::star::frame::XDispatch::dispatch() method of the object + provided by the external instance. + </p> + + <p> + In particular, the supported URLs for communicating to an external instance are: + <ul> + <li><b>.uno:DataSourceBrowser/InsertColumns</b> + <br/> + Available whenever an external instance provides a dispatcher ( + com::sun::star::frame::XDispatch) + for this URL. + <br/> + Enabled, if at least one row in the grid view of a table or query is selected. + <br/> + It is the task of the external instance to provide functionality for this URL, but usually it is used + to implement some kind of "Data To Text" functionality. + <br/> + </li> + <li><b>.uno:DataSourceBrowser/InsertContent</b> + <br/> + Available whenever an external instance provides a dispatcher( + com::sun::star::frame::XDispatch + ) for this URL. + <br/> + Enabled, if at least one row in the grid view of a table or query is selected. + <br/> + It is the task of the external instance to provide functionality for this URL, but usually it is used + to implement some kind of "Data To Fields" functionality. + <br/> + </li> + <li><b>.uno:DataSourceBrowser/FormLetter</b> + <br/> + Available whenever an external instance provides a dispatcher ( + com::sun::star::frame::XDispatch) for this URL. + <br/> + It is the task of the external instance to provide functionality for this URL, but usually it is used + to implement some kind of "Form Letter" functionality. + <br/> + </li> + </ul> + </p> + <p>For all kinds of URLs, the parameters supplied during dispatching build up a DataAccessDescriptor, + where the following properties are present: + <ul> + <li>DataAccessDescriptor::DataSourceName</li> + <li>DataAccessDescriptor::Command</li> + <li>DataAccessDescriptor::CommandType</li> + <li><em>optional</em> DataAccessDescriptor::Selection</li> + <li><em>optional</em> DataAccessDescriptor::BookmarkSelection</li> + <li><em>optional</em> DataAccessDescriptor::ResultSet</li> + </ul> + </p> + <p>The default for DataAccessDescriptor::Selection is to contain bookmarks, if not specified + otherwise by DataAccessDescriptor::BookmarkSelection. + </p> + + @see com::sun::star::sdb::ContentLoader + @see com::sun::star::sdb::DatabaseContext + @see com::sun::star::sdb::DataSource + @see com::sun::star::frame::XDispatch + @see com::sun::star::frame::XDispatchProvider + @see com::sun::star::frame::XDispatchProviderInterceptor +*/ +published service DataSourceBrowser +{ + /** implements basic form controller functionality. + <p> + With a data source browser implementing this interface, external components have access to + <ul><li>the grid control which is used to display the currently selected table/query + (see com::sun::star::awt::XTabController::getControls()) + </li> + <li>the data form used for displaying objects. As always for components implementing this service, + the object returned by + com::sun::star::awt::XTabController::getModel() is a dataform. + </li> + </ul> + </p> + */ + [optional] service com::sun::star::form::FormController; + + /** allows the component to be plugged into frames. + */ + interface com::sun::star::frame::XController; + + /** is used to initialize the browser. + + <p> + Parameters (passed to the method com::sun::star::lang::XInitialization::initialize()) + have to be instances of com::sun::star::beans::PropertyValue, or + instances of com::sun::star::beans::NamedValue, where the <code>Name</code> member + specifies what the parameter controls, with the <code>Value</code> member containing the value to be used. + <br/> + Recognized parameters are: + <ul> + <li><b>Frame</b><br/> + has to be an com::sun::star::frame::XFrame interface specifying the frame to + plug the browser component into.</li> + + <li><b>DataSourceName</b><br/> + The name of the globally registered DataSource to be used for initial display. It is only + meaningful together with the other parameters specifying the object to display.</li> + + <li><b>CommandType</b><br/> + This has to be a CommandType value, specifying the type of the object to display initially. + It is only meaningful together with the <em>DataSourceName</em> and the <em>Command</em> parameters.</li> + + <li><b>Command</b><br/> + This is a string giving the name of the object to display initially. Whether it is table name, a query + name or a SQL string is controller by the <em>CommandType</em> parameter.</li> + + <li><b>EnableBrowser</b><br/> + is a boolean value (defaulting to `TRUE`), which specifies whether to enable the data source browser + control. This is a tree control on the left hand side of the view, which allows to browse all registered + data sources, including their tables and queries.</li> + + <li><b>ShowBrowser</b><br/> + is a boolean value (defaulting to `TRUE`), which specifies whether to initially show the data source + browser control. If <code>EnableBrowser</code> is `FALSE`, then this parameter is ignored. If + <code>EnableBrowser</code> is `TRUE`, and <code>ShowBrowser</code> is `FALSE`, then the control + is initially hidden, but can be toggled by a toolbar button.</p> + + <li><b>ShowMenu</b><br/> + is a boolean value (defaulting to `TRUE`), specifying whether or not to show a menu in the frame + where the component is plugged.</li> + </ul> + </p> + */ + interface com::sun::star::lang::XInitialization; + + /** is used to control the browser from outside. + + <p> + You may use the + com::sun::star::frame::XDispatchProvider::queryDispatch() + method + to query for objects which implement the + com::sun::star::frame::XDispatch + interface, + and which allow you to be notified on status changes and to dispatch special requests. + </p> + <p> + The recognized URLs are: + <ul> + <li><b>.uno:Copy</b> + <br/> + implements the usual <em>Copy</em> command. Enabled if the grid view has the focus and text in any cell + is selected. + </li> + <li><b>.uno:Cut</b> + <br/> + implements the usual <em>Cut</em> command. Enabled if the grid view has the focus and text in any cell + is selected. + </li> + <li><b>.uno:Paste</b> + <br/> + implements the usual <em>Paste</em> command. Enabled if the grid view has the focus and a cell which + allows text input is being edited. + </li> + <li><b>.uno:EditDoc</b> + <br/> + allows switching the edit mode of the grid view. Enabled if editing the data is allowed in general. + </li> + <li><b>.uno:Undo</b> + <br/> + revokes any changes done in the current row. + </li> + <li><b>.uno:Save</b><br/> + saves the changes done in the current row. + </li> + </ul> + </p> + */ + interface com::sun::star::frame::XDispatchProvider; + + /** allows to intercept user-triggered context menus in the data source browser + + <p>Context menu interception is currently supported only for the browser control where the registered + data sources and all their tables and queries are displayed in a tree view.</p> + + <p>The selection supplied by com::sun::star::ui::ContextMenuExecuteEvent::Selection, + in the event structure passed to the context menu interceptors, actually is a value from the + com::sun::star::sdb::application::NamedDatabaseObject group.</p> + + @since OOo 3.0 + */ + [optional] interface ::com::sun::star::ui::XContextMenuInterception; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseAccess.idl b/offapi/com/sun/star/sdb/DatabaseAccess.idl new file mode 100644 index 000000000..22ab69c96 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseAccess.idl @@ -0,0 +1,106 @@ +/* -*- 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_DatabaseAccess_idl__ +#define __com_sun_star_sdb_DatabaseAccess_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/util/XNumberFormatsSupplier.idl> + + + module com { module sun { module star { module sdb { + + published interface XDatabaseAccess; + published interface XCompletedConnection; + + +/** specifies a component, which controls DatabaseAccessConnections and acts like a + shared DataSource. + + @deprecated + */ +published service DatabaseAccess +{ + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** controls the establishing of the connections. + */ + interface XDatabaseAccess; + + /** establishing a connection with user interaction, the implementation + is optional. + */ + [optional] interface XCompletedConnection; + + /** is the URL of the bean. + */ + [readonly, property] string URL; + + /** is the title of the bean. + */ + [property] string Title; + + /** indicates a database url of the form <br> + <code> jdbc:<em>subprotocol</em>:<em>subname</em></code> or + <code> sdbc:<em>subprotocol</em>:<em>subname</em></code> + */ + [property] string ConnectURL; + + /** is a list of arbitrary string tag/value pairs as + connection arguments; normally at least a "user" and + "password" property should be included. + */ + [property] sequence<com::sun::star::beans::PropertyValue> ConnectInfo; + + /** determines whether modifications on the data access bean are allowed + or not. + */ + [readonly, property] boolean IsReadOnly; + + /** provides an object for formatting numbers. + */ + [property] com::sun::star::util::XNumberFormatsSupplier + NumberFormatsSupplier; + + /** indicates that a password is always necessary. + */ + [optional, property] boolean IsPasswordRequired; + + /** defines a list of tables, on which the bean should have it's focus. + If empty, all tables are rejected. + */ + [optional, property] sequence<string> TableFilter; + + /** defines a list of table types, on which the bean should have it's focus. + If empty, all tables types are rejected. + */ + [optional, property] sequence<string> TableTypeFilter; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseAccessConnection.idl b/offapi/com/sun/star/sdb/DatabaseAccessConnection.idl new file mode 100644 index 000000000..a5af742fa --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseAccessConnection.idl @@ -0,0 +1,85 @@ +/* -*- 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_DatabaseAccessConnection_idl__ +#define __com_sun_star_sdb_DatabaseAccessConnection_idl__ + +#include <com/sun/star/container/XChild.idl> + +#include <com/sun/star/sdbcx/DatabaseDefinition.idl> + +#include <com/sun/star/sdbc/Connection.idl> + + module com { module sun { module star { module sdb { + + published interface XQueriesSupplier; + published interface XFormDocumentsSupplier; + published interface XReportDocumentsSupplier; + published interface XSQLQueryComposerFactory; + + +/** specifies a component, which supplies and stores additional information related + to a certain database connection, such as, DatabaseQueries, FormDocuments, and ReportDocuments. + Objects for data definition are supplied as well, for instance, Tables, Views, etc. + + <p> + Implements the service com::sun::star::sdbc::Connection. + It is possible to open more than one connection at the same time, but the method + com::sun::star::sdb::DatabaseAccessConnection::dispose() + will close only one of these connections. You have to close all connections in order + to close the connection to the database. + </p> + + @deprecated +*/ +published service DatabaseAccessConnection +{ + /** supporting of the base connection service. + <p><B>Note:</B><br/> + Don't use the "dispose" method of the XComponent interface, as the DataAccess + uses a more sophisticated interface for closing a connection. + @see XDatabaseAccess + </p> + */ + service com::sun::star::sdbc::Connection; + + /** access to the DatabaseDefinition beans of the connection. + */ + service com::sun::star::sdbcx::DatabaseDefinition; + + /** access to the owning data access bean. + */ + interface com::sun::star::container::XChild; + + /** returns a tool for composing queries. + */ + interface XSQLQueryComposerFactory; + + /** provides access to the queries. + */ + interface XQueriesSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseAccessContext.idl b/offapi/com/sun/star/sdb/DatabaseAccessContext.idl new file mode 100644 index 000000000..af68e71ea --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseAccessContext.idl @@ -0,0 +1,77 @@ +/* -*- 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_DatabaseAccessContext_idl__ +#define __com_sun_star_sdb_DatabaseAccessContext_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> + +#include <com/sun/star/container/XNameAccess.idl> + +#include <com/sun/star/util/XLocalizedAliases.idl> + +#include <com/sun/star/lang/XLocalizable.idl> + + module com { module sun { module star { module sdb { + +/** is the context for data access beans. It allows to register aliases for database + access beans. It is possible to have different aliases for different locales. + + + <p> + A DatabaseContext stores an alias for the URL of a database access component + for a given locale. It is also allowed to work with a default locale. This is useful + in connection with Enumeration or NameAccess to the context. In common use, the + default language is set during the initialization of the component. + </p> + <p> + The service also provides a default handling for locales, where an alias isn't + set. The first time an alias is registered for a programmatic name, the alias + becomes the default for all other known locales. + + </p>@see com::sun::star::util::XLocalizedAliases + + @deprecated + */ +published service DatabaseAccessContext +{ + /** Enumeration on all registered data sources for a default locale. + */ + interface com::sun::star::container::XEnumerationAccess; + + /** NameAccess on all registered data sources for a default locale. + */ + interface com::sun::star::container::XNameAccess; + + /** Interface for registering aliases for data sources. + */ + interface com::sun::star::util::XLocalizedAliases; + + /** Interface for setting and retrieving the default language. + */ + interface com::sun::star::lang::XLocalizable; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl b/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl new file mode 100644 index 000000000..fec0bdc84 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl @@ -0,0 +1,61 @@ +/* -*- 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_DatabaseAccessDataSource_idl__ +#define __com_sun_star_sdb_DatabaseAccessDataSource_idl__ + +#include <com/sun/star/io/XPersistObject.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/ucb/RememberAuthentication.idl> +#include <com/sun/star/sdbc/XDataSource.idl> + +module com { module sun { module star { module sdb { + + published interface XCompletedConnection; + +/** is a factory to create data access beans. Data access beans are shared among + components, so if an already existing bean is requested, the existing one is returned. + + @deprecated + */ +published service DatabaseAccessDataSource +{ + interface com::sun::star::beans::XPropertySet; + interface com::sun::star::sdbc::XDataSource; + + /** is optional for implementation. + */ + [optional] interface XCompletedConnection; + + /** locates the database access bean. + */ + [property] string URL; + + /** determines the password handling. + */ + [optional, property] com::sun::star::ucb::RememberAuthentication PasswordMode; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseContext.idl b/offapi/com/sun/star/sdb/DatabaseContext.idl new file mode 100644 index 000000000..fee353634 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseContext.idl @@ -0,0 +1,43 @@ +/* -*- 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_DatabaseContext_idl__ +#define __com_sun_star_sdb_DatabaseContext_idl__ + +#include <com/sun/star/sdb/XDatabaseContext.idl> + +module com { module sun { module star { module sdb { + +/** is the context for accessing datasource. + + <p> + A datasource contains information how to create a connection to a database, such as, + which database driver should be used, for which user should a connection be established, etc. + <br/> + The context stores datasources under a given name. + + </p> + @see com::sun::star::sdb::DataSource + */ +published service DatabaseContext : XDatabaseContext; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseDocument.idl b/offapi/com/sun/star/sdb/DatabaseDocument.idl new file mode 100644 index 000000000..9f094684a --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseDocument.idl @@ -0,0 +1,65 @@ +/* -*- 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_DatabaseDocument_idl__ +#define __com_sun_star_sdb_DatabaseDocument_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/XProtectable.idl> + + module com { module sun { module star { module sdbcx { + published interface XDataDescriptorFactory; + published interface XRename; +};};};}; + + module com { module sun { module star { module sdb { + +/** specifies a link to a document associated with a database document + @since OOo 2.0 + @deprecated + */ +published service DatabaseDocument +{ + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + // allows to create new DatabaseDocument objects + interface com::sun::star::sdbcx::XDataDescriptorFactory; + + // allows to rename the object. + interface com::sun::star::sdbcx::XRename; + + /** is the name of the document. + */ + [readonly, property] string Name; + + + /** is the URL of the document. + */ + [readonly, property] string URL; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseEnvironment.idl b/offapi/com/sun/star/sdb/DatabaseEnvironment.idl new file mode 100644 index 000000000..3e1b48f33 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseEnvironment.idl @@ -0,0 +1,61 @@ +/* -*- 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_DatabaseEnvironment_idl__ +#define __com_sun_star_sdb_DatabaseEnvironment_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/XNumberFormatsSupplier.idl> + + + module com { module sun { module star { module sdb { + + published interface XDatabaseEnvironment; + + +/** @deprecated + is the top level service for accessing database components. + + + + <p>It enables the service user to establish connections to databases + or to use database access beans to gain access to database components. + This service takes control over all other database services.</p> + */ +published service DatabaseEnvironment +{ + interface XDatabaseEnvironment; + + interface com::sun::star::beans::XPropertySet; + + + /** provides an object for formatting numbers. + */ + [readonly, property] com::sun::star::util::XNumberFormatsSupplier + NumberFormatsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseInteractionHandler.idl b/offapi/com/sun/star/sdb/DatabaseInteractionHandler.idl new file mode 100644 index 000000000..79f617452 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseInteractionHandler.idl @@ -0,0 +1,61 @@ +/* -*- 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_DatabaseInteractionHandler_idl__ +#define __com_sun_star_sdb_DatabaseInteractionHandler_idl__ + +module com { module sun { module star { module task { + interface XInteractionHandler2; +}; }; }; }; + +module com { module sun { module star { module sdb { + +/** describes a service which is able to handle database-related interactions. + + <p>Usually, you will not instantiate this service directly. Instead, you'll instantiate a generic + com::sun::star::task::InteractionHandler service, and pass it your request. Based on + configuration data, this implementation will decide where to forward the request to.</p> + + <p>By default, the <code>DatabaseInteractionHandler</code> feels responsible (as per configuration) for the + following interaction types: + <ul> + <li><b>database related errors</b><br/> + The general structure to transport such errors is the com::sun::star::sdbc::SQLException, + and if your interaction request supplies such a <code>SQLException</code> (or an instance of any derived class), + the handler will display a generic error dialog, which is able to travel the object chain which may be contained + in the exception. + </li> + <li><b>parameter requests</b><br/> + If your interaction request supplies a com::sun::star::sdb::ParametersRequest, + the handler will open a standard dialog asking the user to fill in parameter values. + <br/> + In the case you want to use this feature of the handler, you should supply a special continuation + (com::sun::star::sdb::XInteractionSupplyParameters) as well, so the + handler can return the entered information. + </li> + </ul> + </p> +*/ +service DatabaseInteractionHandler: com::sun::star::task::XInteractionHandler2; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatabaseRegistrationEvent.idl b/offapi/com/sun/star/sdb/DatabaseRegistrationEvent.idl new file mode 100644 index 000000000..95e9f606e --- /dev/null +++ b/offapi/com/sun/star/sdb/DatabaseRegistrationEvent.idl @@ -0,0 +1,52 @@ +/* -*- 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_DatabaseRegistrationEvent_idl__ +#define __com_sun_star_sdb_DatabaseRegistrationEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module sdb { + + +/** describes a change in a database registration + + @see XDatabaseRegistrations + @see XDatabaseRegistrationsListener + + @since LibreOffice 3.3 + */ +published struct DatabaseRegistrationEvent : ::com::sun::star::lang::EventObject +{ + /// is the name of the database registration affected by the event + string Name; + /// is the old location of the database which is affected by the event + string OldLocation; + /// is the new location of the database which is affected by the event + string NewLocation; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DatasourceAdministrationDialog.idl b/offapi/com/sun/star/sdb/DatasourceAdministrationDialog.idl new file mode 100644 index 000000000..c4e105be6 --- /dev/null +++ b/offapi/com/sun/star/sdb/DatasourceAdministrationDialog.idl @@ -0,0 +1,103 @@ +/* -*- 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_DatasourceAdministrationDialog_idl__ +#define __com_sun_star_sdb_DatasourceAdministrationDialog_idl__ + +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + + +module com { module sun { module star { module sdb { + + +/** provides a user interface for administrating the system wide registered data sources. + <p> + Here, <em>system wide registered</em> means registered on the (one and only) instance + of the + com::sun::star::sdb::DatabaseContext + service. + </p> +*/ +published service DatasourceAdministrationDialog +{ + /** the title of the (dialog) window + */ + [property] string Title; + + /** parent window to use for the administration dialog + <p> + This property can't be set while the dialog is being displayed. + </p> + */ + [property] com::sun::star::awt::XWindow ParentWindow; + + /** allows access to the properties of the object + */ + interface com::sun::star::beans::XPropertySet; + + /** allows starting execution of the administration dialog + */ + interface com::sun::star::ui::dialogs::XExecutableDialog; + + /** allows initializing the dialog + <p> + You do not need to call the initialize method directly, instead you may use the createInstanceWithArguments + method of your com::sun::star::lang::XMultiServiceFactory. + </p> + + <p> + You specify a parameter by passing one (or more) + com::sun::star::beans::PropertyValue + object(s) to the initialize method, where the <em>Name</em> field contains a string describing which aspect + you want to affect, and the <em>Value</em> field containing a value. + <br/> + Imagine the initialization values as if you use setPropertyValue of the + com::sun::star::beans::XPropertySet + interface ... + <br/> + allowed parameters are + <ul> + <li><b>Title</b><br/> + String describing the initial title of the dialog. + If not specified, a default title is used. + </li> + <li><b>ParentWindow</b><br/> + com::sun::star::awt::XWindow + describing the parent window to use for the dialog. + </li> + <li><b>InitialSelection</b><br/> + String or XDataSource describing which data source should be selected initially. + This String name must be known to the + com::sun::star::sdb::DatabaseContext. + </li> + </ul> + </p> + */ + interface com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DefinitionContainer.idl b/offapi/com/sun/star/sdb/DefinitionContainer.idl new file mode 100644 index 000000000..7ae204bf2 --- /dev/null +++ b/offapi/com/sun/star/sdb/DefinitionContainer.idl @@ -0,0 +1,90 @@ +/* -*- 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_DefinitionContainer_idl__ +#define __com_sun_star_sdb_DefinitionContainer_idl__ + + module com { module sun { module star { module container { + published interface XNameAccess; + published interface XNameContainer; + published interface XIndexAccess; + published interface XEnumerationAccess; +};};};}; + + module com { module sun { module star { module util { + published interface XRefreshable; +};};};}; + module com { module sun { module star { module lang { + published interface XSingleServiceFactory; +};};};}; + + module com { module sun { module star { module sdb { + + +/** describes a container which provides access to database related definitions like + commands, forms, and reports. + + <p> + The container supports access to its elements by the elements name or + by the elements position. + </p> + <p> + Simple enumeration must be supported as well. + </p> + <p> + To reflect the changes with the underlying database, a refresh mechanism + needs to be supported. + </p> + */ +published service DefinitionContainer +{ + // gives access to the elements by name. + interface com::sun::star::container::XNameAccess; + + // allows to insert and remove by name. + interface com::sun::star::container::XNameContainer; + + // gives access to the elements by index. + interface com::sun::star::container::XIndexAccess; + + // allows to create an enumeration of the elements. + interface com::sun::star::container::XEnumerationAccess; + + + /** is used to refresh the container, to reflect changes in the underlying database. + */ + [optional] interface com::sun::star::util::XRefreshable; + + /** can be used to create container elements. + <p> + If this interface is supported, the object created using it (e.g., the object returned by + com.sun.star.lang::XSingleServiceFactory::createInstance() + ) can be used as container elements. + </p> + */ + [optional] interface com::sun::star::lang::XSingleServiceFactory; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DefinitionContent.idl b/offapi/com/sun/star/sdb/DefinitionContent.idl new file mode 100644 index 000000000..1cc7dfa32 --- /dev/null +++ b/offapi/com/sun/star/sdb/DefinitionContent.idl @@ -0,0 +1,65 @@ +/* -*- 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_DefinitionContent_idl__ +#define __com_sun_star_sdb_DefinitionContent_idl__ + +#include <com/sun/star/ucb/Content.idl> +#include <com/sun/star/container/XHierarchicalName.idl> + + +module com { module sun { module star { module sdb { + + +/** defines the basic functionality for an object in the hierarchy of sub documents + of an OfficeDatabaseDocument. + + @see DocumentDefinition + @see DocumentContainer + */ +service DefinitionContent +{ + /** provides the functionality for treating the object as part of a hierarchy + of objects. + + <p>The following commands are commonly supported by the com::sun::star::ucb::XCommandProcessor + implementation of a <code>DefinitionContent</code>: + <ul> + <li><strong>getPropertyValues</strong></li> + <li><strong>setPropertyValues</strong></li> + <li><strong>getPropertySetInfo</strong></li> + </ul> + </p> + + <p>Additional commands might be supported by derived services.</p> + */ + service ::com::sun::star::ucb::Content; + + /** provides access to the complete name of the content within its hierarchy + @since OOo 3.3 + */ + interface ::com::sun::star::container::XHierarchicalName; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Document.idl b/offapi/com/sun/star/sdb/Document.idl new file mode 100644 index 000000000..6e5720860 --- /dev/null +++ b/offapi/com/sun/star/sdb/Document.idl @@ -0,0 +1,51 @@ +/* -*- 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_Document_idl__ +#define __com_sun_star_sdb_Document_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { + +/** specifies documents which belong to a database source. + + <p> + These documents typically process information from a connected + data source. A Document could be a form or a report. + +@deprecated +*/ +published service Document +{ + interface com::sun::star::beans::XPropertySet; + + /** is the name of the document. If the document is part of the container, + it is not possible to alter the name.*/ + [readonly, property] string Name; + + /** is the URL of the document. */ + [property] string DocumentLocation; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DocumentContainer.idl b/offapi/com/sun/star/sdb/DocumentContainer.idl new file mode 100644 index 000000000..911cb0b3c --- /dev/null +++ b/offapi/com/sun/star/sdb/DocumentContainer.idl @@ -0,0 +1,118 @@ +/* -*- 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_DocumentContainer_idl__ +#define __com_sun_star_sdb_DocumentContainer_idl__ + +#include <com/sun/star/sdb/DefinitionContainer.idl> +#include <com/sun/star/sdb/DefinitionContent.idl> + + + module com { module sun { module star { module lang { + published interface XMultiServiceFactory; +};};};}; + + module com { module sun { module star { module frame { + published interface XComponentLoader; +};};};}; + + module com { module sun { module star { module container { + published interface XHierarchicalNameContainer; +};};};}; + + + module com { module sun { module star { module sdb { + + +/** describes a container which provides access to documents embedded into a database document, + usually forms and reports. + + <p>The com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + should be used to create sub document container or form, or report objects.</p> + + <p>The embedded documents do not support any particular database related service, instead, they're + usual com::sun::star::document::OfficeDocuments.<br/> + The only thing worth mentioning here is that they support the + com::sun::star::container::XChild interface, whose + com::sun::star::container::XChild::getParent() method can be used to + obtain the database document which the embedded document belongs to. + </p> + + @see DocumentDefinition + @see OfficeDatabaseDocument + */ +service DocumentContainer +{ + service DefinitionContainer; + + /** provides functionality for treating the container as part of a hierarchy + of a database document's sub documents. + + <p>The com::sun::star::ucb::XCommandProcessor::execute() method + of a <code>DocumentDefinition</code> supports at least the following commands, additionally to + the ones already supported by the DefinitionContent: + <ul> + <li><strong>open</strong>: provides a com::sun::star::ucb::XDynamicResultSet + to enumerate the content of the document container.</li> + <li><strong>delete</strong>: deletes the document container, including all contained documents.</li> + </ul> + */ + service DefinitionContent; + + /** can be used to load the document inside. + <p> + URL: describes the name of the document definition to load, + TargetFrameName: isn't used. + SearchFlags: isn't used. + Arguments: + <ol> + <li>PropertyValue</li> + Name = ActiveConnection + Value = The connection which should be used when opening the text document. + <li>PropertyValue</li> + Name = OpenMode + Value = string, "open" if the document should be opened in live mode (editing is not possible), + "openDesign" if the document should be open in design mode (editing is possible) + </ol> + @see com::sun::star::sdbc::XConnection + </p> + */ + interface com::sun::star::frame::XComponentLoader; + + /** can be used to create container elements. + <p> + If this interface is supported, the object created using it (e.g., the object returned by + com.sun.star.lang::XMultiServiceFactory::createInstanceWithArguments() + ) can be used as container elements. + </p> + */ + interface com::sun::star::lang::XMultiServiceFactory; + + /** can be used to create folder hierarchies and to organize forms or reports in different sub folders. + */ + interface com::sun::star::container::XHierarchicalNameContainer; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DocumentDataSource.idl b/offapi/com/sun/star/sdb/DocumentDataSource.idl new file mode 100644 index 000000000..c8de0f0f4 --- /dev/null +++ b/offapi/com/sun/star/sdb/DocumentDataSource.idl @@ -0,0 +1,46 @@ +/* -*- 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_DocumentDataSource_idl__ +#define __com_sun_star_sdb_DocumentDataSource_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/XDocumentDataSource.idl> +#include <com/sun/star/sdb/DataSource.idl> + + module com { module sun { module star { module sdb { + + +/** simplifies the accessing of data sources and it's corresponding database document. + + @see DataSource + @see XDocumentDataSource + */ + +service DocumentDataSource +{ + service DataSource; + interface XDocumentDataSource; +}; + +}; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DocumentDefinition.idl b/offapi/com/sun/star/sdb/DocumentDefinition.idl new file mode 100644 index 000000000..e2b266e89 --- /dev/null +++ b/offapi/com/sun/star/sdb/DocumentDefinition.idl @@ -0,0 +1,90 @@ +/* -*- 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_DocumentDefinition_idl__ +#define __com_sun_star_sdb_DocumentDefinition_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/sdb/DefinitionContent.idl> + +module com { module sun { module star { module sdb { + + interface XSubDocument; + +/** specifies a sub document of an OfficeDatabaseDocument. + + <p>Usual instances of a <code>DocumentDefinition</code> are forms and reports.</p> + + <p>Note that the <code>DocumentDefinition</code> does not denote the actual document + (i.e. an object supporting the com::sun::star::frame::XModel interface), + but only a shortcut to access and load those actual documents.</p> +*/ +service DocumentDefinition +{ + /** provides functionality for treating the object as part of a hierarchy + of a database document's sub documents. + + <p>The com::sun::star::ucb::XCommandProcessor::execute() method + of a <code>DocumentDefinition</code> supports at least the following commands, additionally to + the ones already supported by the DefinitionContent: + <ul> + <li><strong>open</strong>: loads the sub document in an own frame. The return value of + the <code>execute</code> method is the model of the loaded document.</li> + <li><strong>store</strong>: stores the document.</li> + <li><strong>openDesign</strong>: opens the sub document in an own frame, in design mode. + The user can make changes to the document, and save those changes. The return value of + the <code>execute</code> method is the model of the loaded document.</li> + <li><strong>preview</strong>: retrieves an image showing a preview of the sub document.</li> + <li><strong>getDocumentInfo</strong>: retrieves the document information, as + com::sun::star::document::XDocumentProperties + instance, of the sub document.</li> + <li><strong>delete</strong>: deletes the sub document from the database document.</li> + <li><strong>close</strong>: closes the sub document, if it had previously been opened + using either the <code>open</code> or <code>openDesign</code> command. The return value + of the <code>execute</code> command is a <code>boolean</code> value indicating whether + the sub document could be closed. Reasons for not closing the document include vetoes by + third parties, for instance, because the user opened a dialog modal to the sub document, + or a long-running task such as printing is currently running.</li> + <li><strong>show</strong>: shows the sub document. This is useful if you previously opened the + document hidden, or if you previously hide it using the <em>hide</em> command.<br/> + The <em>open</em> command is not available if the sub document has not been loaded, yet.</li> + <li><strong>hide</strong>: hides the sub document. In opposite to the <em>close</em> command, + only the document window is hidden, but the document is kept loaded. A subsequent execution + of the <em>show</em> command will show the window, again.</li> + </ul> + */ + service DefinitionContent; + + interface ::com::sun::star::beans::XPropertySet; + + interface ::com::sun::star::sdb::XSubDocument; + + /** is the name of the document. If the document is part of the container, + it is not possible to alter the name.*/ + [readonly, property] string Name; + + /** Indicates if the document is to be used as template, for example, if a report is to be filled with data. */ + [readonly, property] boolean AsTemplate; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/DocumentSaveRequest.idl b/offapi/com/sun/star/sdb/DocumentSaveRequest.idl new file mode 100644 index 000000000..1fef69912 --- /dev/null +++ b/offapi/com/sun/star/sdb/DocumentSaveRequest.idl @@ -0,0 +1,53 @@ +/* -*- 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_DocumentSaveRequest_idl__ +#define __com_sun_star_sdb_DocumentSaveRequest_idl__ + +#include <com/sun/star/task/ClassifiedInteractionRequest.idl> +#include <com/sun/star/ucb/XContent.idl> + + + module com { module sun { module star { module sdb { + + +/** an error specifying the lack of a document name + <p> + Usually thrown if someone tries to save a document which hasn't a name yet. + </p> + @since OOo 2.0 +*/ +exception DocumentSaveRequest: com::sun::star::task::ClassifiedInteractionRequest +{ + /** specifies the content where the document should save inside. + Somebody handling the request could, e.g., use the content as root content + to display the hierarchy of the sub contents. + */ + com::sun::star::ucb::XContent Content; + + /** The default name of the document, may be empty. + */ + string Name; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ErrorCondition.idl b/offapi/com/sun/star/sdb/ErrorCondition.idl new file mode 100644 index 000000000..d70aed387 --- /dev/null +++ b/offapi/com/sun/star/sdb/ErrorCondition.idl @@ -0,0 +1,161 @@ +/* -*- 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_ErrorCondition_idl__ +#define __com_sun_star_sdb_ErrorCondition_idl__ + + +module com { module sun { module star { module sdb { + + +/** defines error conditions for OpenOffice.org Base core components + + <p>Core components of OpenOffice.org will use those error conditions + as error codes (com::sun::star::sdbc::SQLException::ErrorCode) + wherever possible.<br/> + That is, if an <code>SQLException</code> is raised by + such a component, caused by an error condition which is included in the + ErrorCondition group, then the respective <em>negative</em> value + will be used as <code>ErrorCode</code>.</p> + + <p>This allows to determine specific error conditions in your client code, and + to handle it appropriately.</p> + + <p>Note that before you examine the <code>ErrorCode</code> member of a caught + <code>SQLException</code>, you need to make sure that the exception + is really thrown by an OpenOffice.org Base core component. To do so, check + whether the error message (<code>Exception::Message</code>) starts with the + vendor string <code>[OOoBase]</code>.</p> + + <p>The list of defined error conditions, by nature, is expected to permanently grow, + so never assume it being finalized.</p> + + @code{.java} + catch ( SQLException e ) + { + if (e.Message.startsWith( "[OOoBase]" )) + if (e.ErrorCode + ErrorCondition.SOME_ERROR_CONDITION == 0) + handleSomeErrorCondition(); + } + @endcode + */ +constants ErrorCondition +{ + // = section ROW_SET - css.sdb.RowSet related error conditions + + /** is used by and RowSet to indicate that an operation has been vetoed + by one of its approval listeners + + <p>This error condition results in raising a RowSetVetoException.</p> + @see RowSet + @see XRowSetApproveBroadcaster + @see XRowSetApproveListener + */ + const long ROW_SET_OPERATION_VETOED = 100; + + // = section PARSER - parsing related error conditions + + /** indicates that while parsing an SQL statement, cyclic sub queries have been detected. + + <p>Imagine you have a client-side query <code>SELECT * FROM table</code>, which is + saved as "query1". Additionally, there is a query "query2" defined + as <code>SELECT * FROM query1</code>. Now if you try to change the statement of + query1 to <code>SELECT * FROM query2</code>, this is prohibited, because + it would lead to a cyclic sub query. + */ + const long PARSER_CYCLIC_SUB_QUERIES = 200; + + // = section DB - application-level error conditions + // = next section should start with 500 + + /** indicates that the name of a client side database object - a query, a form, + or a report - contains one or more slashes, which is forbidden. + */ + const long DB_OBJECT_NAME_WITH_SLASHES = 300; + + /** indicates that an identifier is not SQL conform. + */ + const long DB_INVALID_SQL_NAME = 301; + + /** indicates that the name of a query contains quote characters. + + <p>This error condition is met when the user attempts to save a query + with a name which contains one of the possible database quote characters. + This is an error since query names can potentially be used in + <code>SELECT</code> statements, where quote identifiers would render the statement invalid.</p> + + @see com::sun::star::sdb::tools::XDataSourceMetaData::supportsQueriesInFrom + */ + const long DB_QUERY_NAME_WITH_QUOTES = 302; + + /** indicates that an attempt was made to save a database object under a name + which is already used in the database. + + <p>In databases which support query names to appear in <code>SELECT</code> + statements, this could mean that a table was attempted to be saved with the + name of an existing query, or vice versa.</p> + + <p>Otherwise, it means an object was attempted to be saved with the + name of an already existing object of the same type.</p> + + @see com::sun::star::sdb::application::DatabaseObject + @see com::sun::star::sdb::tools::XDataSourceMetaData::supportsQueriesInFrom + */ + const long DB_OBJECT_NAME_IS_USED = 303; + + /** indicates an operation was attempted which needs a connection to the + database, which did not exist at that time. + */ + const long DB_NOT_CONNECTED = 304; + + // = section AB - address book access related error conditions + // = next section should start with 550 + + /** used by the component implementing address book access to indicate that a requested address book could + not be accessed. + + <p>For instance, this error code is used when you try to access the address book + in a Thunderbird profile named <i>MyProfile</i>, but there does not exist a profile + with this name.</p> + */ + const long AB_ADDRESSBOOK_NOT_FOUND = 500; + + // = section DATA - data retrieval related error conditions + // = next section should start with 600 + + /** used to indicate that a <code>SELECT</code> operation on a table needs a filter. + + <p>Some database drivers are not able to <code>SELECT</code> from a table if the + statement does not contain a <code>WHERE</code> clause. In this case, a statement + like <code>SELECT * FROM "table"</code> will fail with the error code + <code>DATA_CANNOT_SELECT_UNFILTERED</code>.</p> + + <p>It is also legitimate for the driver to report this error condition as warning, and provide + an empty result set, instead of ungraceful failing.</p> + */ + const long DATA_CANNOT_SELECT_UNFILTERED = 550; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ErrorMessageDialog.idl b/offapi/com/sun/star/sdb/ErrorMessageDialog.idl new file mode 100644 index 000000000..158017b87 --- /dev/null +++ b/offapi/com/sun/star/sdb/ErrorMessageDialog.idl @@ -0,0 +1,94 @@ +/* -*- 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_ErrorMessageDialog_idl__ +#define __com_sun_star_sdb_ErrorMessageDialog_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> + +module com { module sun { module star { module sdb { + +/** provides a dialog for displaying database related exceptions. + <p> + If applications use any of the functionality provided in the modules + com.sun.star::sdbc, com.sun.star::sdbcx and com.sun.star::sdb, + they will - sooner or later - encounter + com::sun::star::sdbc::SQLException + 's. + <br/> + These exceptions can be chained, so the information wrapped in one single + com::sun::star::sdbc::SQLException + can be rather complex (e.g., every instance where such an exception is passing before it is finally caught, could + append a + com::sun::star::sdb::SQLContext + to explain what it was doing), and they should be + presented to the user in a consistent way. + <br/> + This can be reached by using this service. + @see com::sun::star::sdb::InteractionHandler + </p> +*/ +published service ErrorMessageDialog : com::sun::star::ui::dialogs::XExecutableDialog +{ + /** allows initializing the dialog + <p> + You do not need to call the initialize method directly, instead you may use the createInstanceWithArguments + method of your com::sun::star::lang::XMultiServiceFactory. + </p> + <p> + You specify a parameter by passing one (or more) + com::sun::star::beans::PropertyValue + object(s) to the initialize method, where the <em>Name</em> field contains a string describing which aspect + you want to affect, and the <em>Value</em> field containing a value. + <br/> + Imagine the initialization values, as if you use + com::sun::star::beans">XPropertySet::setPropertyValue() + of the + com::sun::star::beans::XPropertySet + interface ... + <br/> + allowed parameters are + <ul> + <li><b>title</b><br/> + String describing the initial title of the dialog. If not specified, a default title is used. + </li> + <li><b>parentWindow</b><br/> + com::sun::star::awt::XWindow + describing the parent window to use for the dialog. + </li> + <li><b>sqlException</b><br/> + com::sun::star::sdbc::SQLException + describing the error which is being displayed.<br/> + When initializing this value, you may use any derivative of + com::sun::star::sdbc::SQLException. + </li> + </ul> + </p> + */ + create([in] string initialTitle, [in] com::sun::star::awt::XWindow parentWindow, [in] any sqlException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/FilterDialog.idl b/offapi/com/sun/star/sdb/FilterDialog.idl new file mode 100644 index 000000000..a9c031ad6 --- /dev/null +++ b/offapi/com/sun/star/sdb/FilterDialog.idl @@ -0,0 +1,51 @@ +/* -*- 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_FilterDialog_idl__ +#define __com_sun_star_sdb_FilterDialog_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/sdb/XSingleSelectQueryComposer.idl> +#include <com/sun/star/sdbc/XRowSet.idl> +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> + + +module com { module sun { module star { module sdb { + +/** + This interface could be incomplete since I derived it from its places of use. + + @since LibreOffice 4.1 +*/ +service FilterDialog : com::sun::star::ui::dialogs::XExecutableDialog +{ + createDefault(); + + createWithQuery([in] com::sun::star::sdb::XSingleSelectQueryComposer QueryComposer, + [in] com::sun::star::sdbc::XRowSet RowSet, + [in] com::sun::star::awt::XWindow ParentWindow); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Forms.idl b/offapi/com/sun/star/sdb/Forms.idl new file mode 100644 index 000000000..bd1f98da7 --- /dev/null +++ b/offapi/com/sun/star/sdb/Forms.idl @@ -0,0 +1,46 @@ +/* -*- 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_Forms_idl__ +#define __com_sun_star_sdb_Forms_idl__ + +#include <com/sun/star/sdb/DocumentContainer.idl> + + + + module com { module sun { module star { module sdb { + + +/** describes a container which provides access to database forms. + + + @see com::sun::star::sdb::DocumentDefinition + */ +service Forms +{ + service DocumentContainer; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/InteractionHandler.idl b/offapi/com/sun/star/sdb/InteractionHandler.idl new file mode 100644 index 000000000..4b93b778a --- /dev/null +++ b/offapi/com/sun/star/sdb/InteractionHandler.idl @@ -0,0 +1,42 @@ +/* -*- 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_InteractionHandler_idl__ +#define __com_sun_star_sdb_InteractionHandler_idl__ + +module com { module sun { module star { module task { + published interface XInteractionHandler; +}; }; }; }; + +module com { module sun { module star { module sdb { + +/** is a service for user interaction for databases. + @deprecated + Do not use this service anymore. Instead, create a generic com::sun::star::task::InteractionHandler + instance, and pass it your request. It will determine, based on configuration data, which concrete interaction + handler implementation to use for a specific request. In particular, requests formerly server by this service here + are by default passed to a DatabaseInteractionHandler. +*/ +published service InteractionHandler: com::sun::star::task::XInteractionHandler; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl b/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl new file mode 100644 index 000000000..90f1edc0f --- /dev/null +++ b/offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl @@ -0,0 +1,226 @@ +/* -*- 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_OfficeDatabaseDocument_idl__ +#define __com_sun_star_sdb_OfficeDatabaseDocument_idl__ + +#include <com/sun/star/document/OfficeDocument.idl> +#include <com/sun/star/sdb/XOfficeDatabaseDocument.idl> +#include <com/sun/star/document/XDocumentEventBroadcaster.idl> +#include <com/sun/star/script/provider/XScriptProviderSupplier.idl> +#include <com/sun/star/frame/XLoadable.idl> +#include <com/sun/star/util/XCloseable.idl> + +module com { module sun { module star { module sdb { + +/** specifies an office database document which is a storable document. + + <p>These documents contain information about forms, and reports, and the properties of a data source.</p> + + <p>The database document contains no data per default. The following is stored inside the document: + <ul> + <li>forms</li> + <li>reports</li> + <li>The table settings defined in DataSettings</li> + <li>The query settings defined in DataSettings</li> + <li>All properties of the service DataSource</li> + </ul></p> + + @see com::sun::star::sdb::XOfficeDatabaseDocument + @see com::sun::star::document::OfficeDocument + @since OOo 2.0 + */ +service OfficeDatabaseDocument +{ + /** specifies basic functionality of a document in OpenOffice.org + + <p>Note that a database document actually does not support the com::sun::star::view::XPrintable interface. + The non-optional requirement of this interface in the com::sun::star::document::OfficeDocument + service is considered a documentation error.</p> + */ + service com::sun::star::document::OfficeDocument; + + interface XOfficeDatabaseDocument; + + /** allows access to the Basic macros and dialogs possibly embedded in the document + @since OOo 3.1 + */ + interface ::com::sun::star::document::XEmbeddedScripts; + + /** supplies a script provider which can be used to execute macros and scripts + embedded in the document + @since OOo 3.1 + */ + interface ::com::sun::star::script::provider::XScriptProviderSupplier; + + /** allows to initialize the document, either from scratch, or from a stored + database document. + + <p>A newly instantiated database document cannot be operated until it is fully + initialized. There are three possible means to do this initialization: + <ul><li>calling <code>XLoadable::initNew</code></li> + <li>calling <code>XLoadable::load</code></li> + <li>calling <code>XStorable::storeAsURL</code></li> + </ul> + The third option was added for compatibility reasons, since a DatabaseDocument + in earlier versions of OpenOffice.org did not support the <code>XLoadable</code> interface, + so the usual way of creating a document from scratch was to create it, set properties as + needed, and store it.</p> + + @since OOo 3.1 + */ + interface ::com::sun::star::frame::XLoadable; + + /** allows to register for notifications happening in the document + + <p>The following events are broadcasted by a database document + <table border="1" frame="all"> + <tr><td><strong>Event Name</strong></td> + <td><strong>broadcasted when</strong></td> + <td align="center"><strong>broadcasted synchronously</strong></td> + </tr> + <tr><td valign="top"><em>OnCreate</em></td> + <td>the document has been newly created. This does not imply that the document has + been loaded into a frame, it just means the initialization has been finished.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnLoadFinished</em></td> + <td>the document has been completely loaded. This does not imply that the document + has been loaded into a frame, it just means the load process has been finished.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnNew</em></td> + <td>the document has been initialized from scratch, including plugging it into a frame.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnLoad</em></td> + <td>the document has been completely loaded, including plugging it into a frame.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSave</em></td> + <td>the document is about to be saved.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnSaveDone</em></td> + <td>saving the document succeeded.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSaveFailed</em></td> + <td>saving the document failed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSaveAs</em></td> + <td>the document is about to be saved under a new name.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnSaveAsDone</em></td> + <td>saving the document under a new name succeeded.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSaveAsFailed</em></td> + <td>saving the document under a new name failed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSaveTo</em></td> + <td>the document is about to be saved to a location different from its + current location, but without adjusting the current location.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnSaveToDone</em></td> + <td>saving the document to a different location succeeded.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSaveToFailed</em></td> + <td>saving the document to a different location failed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnPrepareUnload</em></td> + <td>the document is about to be closed.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnUnload</em></td> + <td>the document is being closed.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnFocus</em></td> + <td>a view to the document obtained the focus.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnUnfocus</em></td> + <td>a view to the document lost the focus.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnModifyChanged</em></td> + <td>the <em>modified</em> state of the document changed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnViewCreated</em></td> + <td>a view to the document has been created, and attached to the document.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnPrepareViewClosing</em></td> + <td>a view to the document is about to be closed.</td> + <td align="center">yes</td> + </tr> + <tr><td valign="top"><em>OnViewClosed</em></td> + <td>a view to the document has been closed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnTitleChanged</em></td> + <td>the title of the document changed.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSubComponentOpened</em></td> + <td>From with a view to the document, a view to a sub component (e.g. a table or a report) has been opened.</td> + <td align="center">no</td> + </tr> + <tr><td valign="top"><em>OnSubComponentClosed</em></td> + <td>From with a view to the document, a view to a sub component (e.g. a table or a report) has been closed.</td> + <td align="center">no</td> + </tr> + </table> + </p> + + @since OOo 3.1 + */ + interface ::com::sun::star::document::XDocumentEventBroadcaster; + + /** implements life time control + + <p>Whoever retrieves an OfficeDatabaseDocument should be aware of + life time issues, since a document needs to be closed when nobody needs it anymore.</p> + + <p>This implies that clients of a document need to ensure that as soon as they don't + need, they invoke com::sun::star::util::XCloseable::close().</p> + + <p>Since this can be done by multiple clients, every client is additionally required + to register itself as com::sun::star::util::XCloseListener at + the document, to prevent some other client closing the model while it's still needed + by the first client.</p> + */ + interface com::sun::star::util::XCloseable; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/OrderColumn.idl b/offapi/com/sun/star/sdb/OrderColumn.idl new file mode 100644 index 000000000..6d264c031 --- /dev/null +++ b/offapi/com/sun/star/sdb/OrderColumn.idl @@ -0,0 +1,46 @@ +/* -*- 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_OrderColumn_idl__ +#define __com_sun_star_sdb_OrderColumn_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + +module com { module sun { module star { module sdb { + +/** describes a column which is part of the ORDER clause. + + @see com::sun::star::sdb::XSingleSelectQueryComposer +*/ +service OrderColumn +{ + service com::sun::star::sdbcx::Column; + + /** describes which sort order this column has. + The default is `TRUE`. + */ + [property] boolean IsAscending; +}; + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/OrderDialog.idl b/offapi/com/sun/star/sdb/OrderDialog.idl new file mode 100644 index 000000000..456e70f69 --- /dev/null +++ b/offapi/com/sun/star/sdb/OrderDialog.idl @@ -0,0 +1,51 @@ +/* -*- 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_OrderDialog_idl__ +#define __com_sun_star_sdb_OrderDialog_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/sdb/XSingleSelectQueryComposer.idl> +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> + + +module com { module sun { module star { module sdb { + +/** + This interface could be incomplete since I derived it from its places of use. + + @since LibreOffice 4.1 +*/ +service OrderDialog : com::sun::star::ui::dialogs::XExecutableDialog +{ + createDefault(); + + createWithQuery([in] com::sun::star::sdb::XSingleSelectQueryComposer QueryComposer, + [in] com::sun::star::beans::XPropertySet RowSet, + [in] com::sun::star::awt::XWindow ParentWindow); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ParametersRequest.idl b/offapi/com/sun/star/sdb/ParametersRequest.idl new file mode 100644 index 000000000..9e44f9c50 --- /dev/null +++ b/offapi/com/sun/star/sdb/ParametersRequest.idl @@ -0,0 +1,60 @@ +/* -*- 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_ParametersRequest_idl__ +#define __com_sun_star_sdb_ParametersRequest_idl__ + +#include <com/sun/star/task/ClassifiedInteractionRequest.idl> + +#include <com/sun/star/container/XIndexAccess.idl> +#include <com/sun/star/sdbc/XConnection.idl> + + + module com { module sun { module star { module sdb { + + +/** an error specifying the lack of parameters values + <p> + Usually thrown if someone tries to execute an SQL statement containing + parameters which can't be filled by the executing instance. + </p> +*/ +published exception ParametersRequest: com::sun::star::task::ClassifiedInteractionRequest +{ + /** is the list of parameters requested. + The objects returned by the + com::sun::star::container::XIndexAccess + have to + be property sets describing the respective parameter. For this, the objects have to support the + service com::sun::star::sdbcx::Column. + */ + com::sun::star::container::XIndexAccess Parameters; + + /** specifies the connection on which the statement is to be executed. + Somebody handling the request could, e.g., use the connection for determining + the identifier quote string, etc. + */ + com::sun::star::sdbc::XConnection Connection; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/PreparedStatement.idl b/offapi/com/sun/star/sdb/PreparedStatement.idl new file mode 100644 index 000000000..89c36d297 --- /dev/null +++ b/offapi/com/sun/star/sdb/PreparedStatement.idl @@ -0,0 +1,52 @@ +/* -*- 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_PreparedStatement_idl__ +#define __com_sun_star_sdb_PreparedStatement_idl__ + +#include <com/sun/star/sdbc/PreparedStatement.idl> + + module com { module sun { module star { module sdbcx { + published interface XColumnsSupplier; +};};};}; + + module com { module sun { module star { module sdb { + + +/** represents a precompiled SQL statement. The service differs only in the access + of the columns and parameters to the service + com::sun::star::sdbc::PreparedStatement. + */ +published service PreparedStatement +{ + service com::sun::star::sdbc::PreparedStatement; + + + /** access to the resulting columns of the statement. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Query.idl b/offapi/com/sun/star/sdb/Query.idl new file mode 100644 index 000000000..13cc93592 --- /dev/null +++ b/offapi/com/sun/star/sdb/Query.idl @@ -0,0 +1,78 @@ +/* -*- 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_Query_idl__ +#define __com_sun_star_sdb_Query_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + published interface XDataDescriptorFactory; + published interface XColumnsSupplier; + published interface XRename; +};};};}; + +#include <com/sun/star/sdb/DataSettings.idl> + +#include <com/sun/star/sdb/XQueryDefinition.idl> + + module com { module sun { module star { module sdb { + + +/** is a stored definition of a SQL query. + + <p> + It can be used if there is a need to execute SQL statements more than once, or + if you want to format the query result fields differently from the + underlying table definitions. + </p> + */ +published service Query +{ + + /** defines the command of the query. + */ + interface com::sun::star::sdb::XQueryDefinition; + + + /** is used for customization of data appearance. + */ + service com::sun::star::sdb::DataSettings; + + + /** is provided for creation of a new query descriptor based on the current information. + */ + interface com::sun::star::sdbcx::XDataDescriptorFactory; + + // allows to rename the object. + interface com::sun::star::sdbcx::XRename; + + + /** access to the columns of the results sets query. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/QueryDefinition.idl b/offapi/com/sun/star/sdb/QueryDefinition.idl new file mode 100644 index 000000000..2f0f7fe35 --- /dev/null +++ b/offapi/com/sun/star/sdb/QueryDefinition.idl @@ -0,0 +1,42 @@ +/* -*- 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_QueryDefinition_idl__ +#define __com_sun_star_sdb_QueryDefinition_idl__ + +#include <com/sun/star/sdb/XQueryDefinition.idl> + + module com { module sun { module star { module sdb { + + +/** is a stored definition of a SQL "Select statement". + + <p> + It can be used, if there is a need to execute SQL statement more than once. + </p> + */ +published service QueryDefinition : XQueryDefinition; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/QueryDescriptor.idl b/offapi/com/sun/star/sdb/QueryDescriptor.idl new file mode 100644 index 000000000..00ce6cd50 --- /dev/null +++ b/offapi/com/sun/star/sdb/QueryDescriptor.idl @@ -0,0 +1,95 @@ +/* -*- 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_QueryDescriptor_idl__ +#define __com_sun_star_sdb_QueryDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + published interface XDataDescriptorFactory; + published interface XColumnsSupplier; +};};};}; + +#include <com/sun/star/sdb/DataSettings.idl> + + module com { module sun { module star { module sdb { + + +/** is a stored definition of a SQL "Select statement". + + <p> + It can be used, if there is a need to execute SQL statement more than once or + if you want to format the query result fields different from the + underlying table definitions. + </p> + */ +published service QueryDescriptor +{ + service com::sun::star::sdbcx::Descriptor; + + + /** is provided for creation of a new query descriptor based on the current information. + */ + interface com::sun::star::sdbcx::XDataDescriptorFactory; + + + /** is used for customization of data appearance. + */ + service com::sun::star::sdb::DataSettings; + + + /** access to the columns of the results sets query. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; + + + /** is the command of the query, this is typically a select statement. + */ + [property] string Command; + + + /** should we use escape processing for the query. + */ + [property] boolean EscapeProcessing; + + + /** is the name of the table which should be updated. This is usually used + for queries which relate on more than one table. + */ + [property] string UpdateTableName; + + + /** is the name of the update table catalog. + */ + [property] string UpdateCatalogName; + + + /** is the name of the update table schema. + */ + [property] string UpdateSchemaName; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 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: */ diff --git a/offapi/com/sun/star/sdb/RelationDesign.idl b/offapi/com/sun/star/sdb/RelationDesign.idl new file mode 100644 index 000000000..e394917d4 --- /dev/null +++ b/offapi/com/sun/star/sdb/RelationDesign.idl @@ -0,0 +1,77 @@ +/* -*- 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_RelationDesign_idl__ +#define __com_sun_star_sdb_RelationDesign_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 relation. + + <p>This service implements a user interface for relations through a graphical design interface.</p> + + <p>The design view of the RelationDesign is identical to the first part of @see QueryDesign. It contains all tables + which are already connected through a relation.</p> + + @see com::sun::star::sdb::ContentLoader + @see com::sun::star::frame::XDispatch + @see com::sun::star::frame::XDispatchProviderInterceptor + + @since OOo 1.1.2 +*/ + +published service RelationDesign +{ + /** allows the component to be plugged into frames. + */ + interface com::sun::star::frame::XController; + + /** is used to initialize the RelationDesign. + + <p>Parameters (passed to the method + com::sun::star::lang::XInitialization::initialize()) + have to be instances of com::sun::star::beans::PropertyValue, where the + com::sun::star::beans::PropertyValue::Name member specifies what the parameter controls, + with the com::sun::star::beans::PropertyValue::Value member containing the value + to be used.<br> + Recognized parameters are: + <ul> + <li><b>Frame</b><br> + has to be a com::sun::star::frame::XFrame interface specifying the frame to plug the + RelationDesign component into. + </li> + <li><b>DataSourceName</b><br> + The name of the globally registered DataSource to be used for initial display. It is only + meaningful together with the other parameters specifying the object to display. + </li> + </ul> + </p> + */ + interface com::sun::star::lang::XInitialization; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ReportDesign.idl b/offapi/com/sun/star/sdb/ReportDesign.idl new file mode 100644 index 000000000..bf7426cf5 --- /dev/null +++ b/offapi/com/sun/star/sdb/ReportDesign.idl @@ -0,0 +1,39 @@ +/* -*- 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_ReportDesign_idl__ +#define __com_sun_star_sdb_ReportDesign_idl__ + +#include <com/sun/star/frame/XController2.idl> + + +module com { module sun { module star { module sdb { + + +/** + This interface could be incomplete since I derived it from its sole place of use. + + @since LibreOffice 4.1 +*/ +service ReportDesign : com::sun::star::frame::XController2; + + +}; }; }; }; + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Reports.idl b/offapi/com/sun/star/sdb/Reports.idl new file mode 100644 index 000000000..27dbbf093 --- /dev/null +++ b/offapi/com/sun/star/sdb/Reports.idl @@ -0,0 +1,46 @@ +/* -*- 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_Reports_idl__ +#define __com_sun_star_sdb_Reports_idl__ + +#include <com/sun/star/sdb/DocumentContainer.idl> + + + + module com { module sun { module star { module sdb { + + +/** describes a container which provides access to database reports. + + + @see com::sun::star::sdb::DocumentDefinition + */ +service Reports +{ + service DocumentContainer; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ResultColumn.idl b/offapi/com/sun/star/sdb/ResultColumn.idl new file mode 100644 index 000000000..f3a8c2c8e --- /dev/null +++ b/offapi/com/sun/star/sdb/ResultColumn.idl @@ -0,0 +1,112 @@ +/* -*- 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_ResultColumn_idl__ +#define __com_sun_star_sdb_ResultColumn_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + +#include <com/sun/star/sdb/ColumnSettings.idl> + + module com { module sun { module star { module sdb { + + +/** describes a column of a result set. + */ +published service ResultColumn +{ + service com::sun::star::sdbcx::Column; + + + /** [optional], access to layout settings for a column. + */ + service com::sun::star::sdb::ColumnSettings; + + + /** indicates whether the column can be used in a Where clause. + */ + [readonly, property] boolean IsSearchable; + + + /** indicates whether values in the column are signed numbers. + */ + [readonly, property] boolean IsSigned; + + + /** indicates that a column is case sensitive. + */ + [readonly, property] boolean IsCaseSensitive; + + + /** indicates the column's normal max width in chars. + */ + [readonly, property] long DisplaySize; + + + /** gets the suggested column title for use in printouts and + displays. + */ + [readonly, property] string Label; + + + /** indicates whether a column is definitely, not writable. + */ + [readonly, property] boolean IsReadOnly; + + + /** indicates whether it is possible for a write on the column to succeed. + */ + [readonly, property] boolean IsWritable; + + + /** indicates whether a write on the column will definitely succeed. + */ + [readonly, property] boolean IsDefinitelyWritable; + + + /** returns the fully-qualified name of the service whose instances + are manufactured if the method + com::sun::star::sdbc::XRow::getObject)= + is called to retrieve a value from the column. + */ + [readonly, property] string ServiceName; + + + /** gets a column's table name. + */ + [readonly, property] string TableName; + + + /** gets a column's schema name. + */ + [readonly, property] string SchemaName; + + + /** gets a column's table's catalog name. + */ + [readonly, property] string CatalogName; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/ResultSet.idl b/offapi/com/sun/star/sdb/ResultSet.idl new file mode 100644 index 000000000..07b9318b4 --- /dev/null +++ b/offapi/com/sun/star/sdb/ResultSet.idl @@ -0,0 +1,53 @@ +/* -*- 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_ResultSet_idl__ +#define __com_sun_star_sdb_ResultSet_idl__ + +#include <com/sun/star/sdbcx/ResultSet.idl> + + module com { module sun { module star { module sdbcx { + published interface XColumnsSupplier; +};};};}; + + module com { module sun { module star { module sdb { + + +/** extends the + com::sun::star::sdbcx::ResultSet + by a more sophisticated access to the result sets + data. + */ +published service ResultSet +{ + service com::sun::star::sdbcx::ResultSet; + + + /** access to the description and data. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/RowChangeAction.idl b/offapi/com/sun/star/sdb/RowChangeAction.idl new file mode 100644 index 000000000..c38da1d92 --- /dev/null +++ b/offapi/com/sun/star/sdb/RowChangeAction.idl @@ -0,0 +1,50 @@ +/* -*- 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_RowChangeAction_idl__ +#define __com_sun_star_sdb_RowChangeAction_idl__ + + module com { module sun { module star { module sdb { + + +/** determines the type of change which is going to be performed. + */ +published constants RowChangeAction +{ + + /** indicates that an insert will be performed. + */ + const long INSERT = 1; + + /** indicates that an update will be performed. + */ + const long UPDATE = 2; + + /** indicates that a delete will be performed. + */ + const long DELETE = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/RowChangeEvent.idl b/offapi/com/sun/star/sdb/RowChangeEvent.idl new file mode 100644 index 000000000..d6e6a292b --- /dev/null +++ b/offapi/com/sun/star/sdb/RowChangeEvent.idl @@ -0,0 +1,50 @@ +/* -*- 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_RowChangeEvent_idl__ +#define __com_sun_star_sdb_RowChangeEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + module com { module sun { module star { module sdb { + + +/** indicates the type of change action on the data source. + */ +published struct RowChangeEvent: com::sun::star::lang::EventObject +{ + + /** indicates the type of change. + @see com::sun::star::sdb::RowChangeAction + */ + long Action; + + + /** indicates the number of rows affected by the change. + */ + long Rows; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/RowSet.idl b/offapi/com/sun/star/sdb/RowSet.idl new file mode 100644 index 000000000..69ecef300 --- /dev/null +++ b/offapi/com/sun/star/sdb/RowSet.idl @@ -0,0 +1,385 @@ +/* -*- 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_RowSet_idl__ +#define __com_sun_star_sdb_RowSet_idl__ + +#include <com/sun/star/sdbc/RowSet.idl> + +module com { module sun { module star { module sdbc { +published interface XConnection; +};};};}; +#include <com/sun/star/sdb/ResultSet.idl> +#include <com/sun/star/sdb/XCompletedExecution.idl> + + module com { module sun { module star { module sdbcx { +published interface XDeleteRows; +};};};}; + + module com { module sun { module star { module sdb { + +published interface XRowSetApproveBroadcaster; +published interface XResultSetAccess; +published interface XParametersSupplier; + + +/** is a client side RowSet, which use retrieves is data based on a database table, + a query or a SQL command or by a row set reader, who mustn't support SQL. + The connection of the row set is typically a named DataSource or a DataAccess component + or a previous instantiated connection. + <p> + Depending on the + com::sun::star::sdbc::ResultSetConcurrency + , 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 + @see com::sun::star::sdb::RowsChangeEvent + </p> + + <h3>Notifications</h3> + <p>A row set is able to be operated in various ways, and additionally it notifies various changes in its + state. Clients of this service can rely on a fixed order of notifications, depending on how they operate + on the component.<br> + The following describes the general order of all possible notifications which you can encounter when + working with a row set: + <table> + <tr><td valign="top"><em>approving</em></td> + <td valign="top">Before anything really happens, any veto listeners are called to approve the operation + which is just being done. This may be either a + XRowSetApproveListener::approveCursorMove() or + XRowSetApproveListener::approveRowChange() call. + @see XRowSetApproveListener + </td> + </tr> + <tr><td valign="top"><em>column values</em></td> + <td valign="top">If the operation includes changes in the values of the columns of the row set, then these are + notified before anything else (except requests for approval). + @see ResultSet + @see com::sun::star::sdbcx::XColumnsSupplier + </td> + </tr> + <tr><td valign="top"><em>operation done</em></td> + <td valign="top">When the operation is done, you get a notification about this. It may be a + com::sun::star::sdbc::XRowSetListener::cursorMoved() or a + com::sun::star::sdbc::XRowSetListener::rowChanged() call or a + XRowsChangeListener::rowsChanged() call. + </td> + </tr> + <tr><td valign="top"><em>row state</em></td> + <td valign="top">If the operation leads to a change in the state of the #IsModified + and/or #IsNew property, this is notified next (in this order). + </td> + </tr> + <tr><td valign="top"><em>row count</em></td> + <td valign="top">If the operation leads to new knowledge about the number of rows in the result set, + the respective changes in the #RowCount and #IsRowCountFinal + are notified last (in this order). + </td> + </tr> + </table> + </p> + + <br> + + <p>The following matrix shows the notifications which apply to the different operations: + <table border="1" frame="all"> + <tr><td></td><td><strong>approveCursorMove</strong></td><td><strong>approveRowChange</strong></td> + <td><strong>column values</strong></td> + <td><strong>cursorMoved</strong></td><td><strong>rowChanged</strong></td> + <td><strong>rowsChanged</strong></td> + <td><strong>IsModified</strong></td><td><strong>IsNew</strong></td> + <td><strong>RowCount</strong></td><td><strong>IsRowCountFinal</strong></td> + </tr> + + <tr><td>com::sun::star::sdbc::XResultSet</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + + <tr><td align="right"><em>next</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td> + <tr><td align="right"><em>beforeFirst</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td></tr> + <tr><td align="right"><em>afterLast</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>first</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>last</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>absolute</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>relative</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>previous</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>refreshRow</em></td><td></td><td></td><td align="center">X</td><td></td><td></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td></tr> + <tr><td align="right"><em>cancelRowUpdates</em></td><td></td><td></td><td align="center">X</td><td></td><td></td><td></td><td align="center">X</td><td></td><td></td><td></td></tr> + + <tr><td>com::sun::star::sdbc::XResultSetUpdate</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + + <tr><td align="right"><em>insertRow</em></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>updateRow</em></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td></td><td></td><td></td></tr> + <tr><td align="right"><em>deleteRow</em></td><td></td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>moveToInsertRow</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td></td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>moveToCurrentRow</em></td><td align="center">X</td><td></td><td></td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td></tr> + + <tr><td>com::sun::star::sdbcx::XDeleteRows</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + + <tr><td align="right"><em>deleteRows</em></td><td></td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + + <tr><td>com::sun::star::sdbcx::XRowLocate</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> + + <tr><td align="right"><em>moveToBookmark</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td></tr> + <tr><td align="right"><em>moveRelativeToBookmark</em></td><td align="center">X</td><td></td><td align="center">X</td><td align="center">X</td><td></td><td></td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + + </tr> + </table> + </p> + + <h3>Deletions</h3> + <p>Via com::sun::star::sdbc::XResultSetUpdate::deleteRow(), you can delete the current row of a + RowSet. This deleted row then doesn't vanish immediately, but is still present, and subsequent calls to + com::sun::star::sdbc::XResultSet::rowDeleted() will return `TRUE`. The deleted row "vanishes" from + the RowSet as soon as the cursor is moved away from it.<br> + As a consequence, the behavior of several other methods is affected:<br> + <dl> + <dt>com::sun::star::sdbc::XResultSet::getRow()</dt> + <dd>returns the position of the cursor, which has not been changed by the deletion.</dd> + + <dt>com::sun::star::sdbc::XResultSet: <code>next</code>, <code>first</code>, <code>last</code>, <code>absolute</code>, + <code>relative</code>, <code>previous</code>, <code>beforeFirst</code>, <code>afterLast</code></dt> + <dd>will let the deleted row vanish from the result set. As a consequence, the #RowCount + will decrease when you do such a move operation after deleting a row.<br> + A special case to note is the <code>next</code> call: When you delete row, say, + <code>15</code>, followed by <code>next</code>, then your RowSet afterwards + still is on row 15, since the deleted row vanished with the move operation.</dd> + + <dt>com::sun::star::sdbc::XResultSet::refreshRow()</dt> + <dd>will throw an exception when the cursor is on a deleted row.</dd> + + <dt>com::sun::star::sdbc::XRow: <code>getFoo</code></dt> + <dd>will return an empty value when the cursor is on a deleted row.</dd> + + <dt>com::sun::star::sdbcx::XRowLocate::getBookmark()</dt> + <dd>will throw an exception when the cursor is on a deleted row.</dd> + + <dt>com::sun::star::sdbc::XRowUpdate: <code>updateFoo</code></dt> + <dd>will throw an exception when the cursor is on a deleted row.</dd> + + <dt>com::sun::star::sdbc::XResultSetUpdate::deleteRow()</dt> + <dd>will throw an exception when the cursor is on a deleted row.</dd> + + <dt>com::sun::star::sdbc::XResultSetUpdate::moveToInsertRow()</dt> + <dd>will let the deleted row vanish from the result set. As a consequence, the #RowCount + will decrease. Also, subsequent calls to + com::sun::star::sdbc::XResultSetUpdate::moveToCurrentRow() will not + be able to move back to the deleted row (since it vanished), but only to the + row after the deleted row.</dd> + </dl> + </p> + */ +published service RowSet +{ + service com::sun::star::sdbc::RowSet; + + service com::sun::star::sdb::ResultSet; + + /** can be used to allow an interaction handler to supply missing data during an execute process. + + <p>If you want a row set to be based on a parametrized query, you will usually use + the com::sun::star::sdbc::XParameters interface.<br> + However, you can also choose to let an interaction handler supply such data. For this, you may + for instance instantiate an InteractionHandler, which asks the user for the + data, or you may write your own one, which supplies the data from somewhere else. + The default implementation will only ask for parameters which aren't set before through the com::sun::star::sdbc::XParameters interface.</p> + + @see com::sun::star::sdb::InteractionHandler + */ + interface com::sun::star::sdb::XCompletedExecution; + + /** approving of actions performed on the row set. + + <p>The support of this interface implies a semantical extension to the com::sun::star::sdbc::XResultSetUpdate + interface which is supported via the com::sun::star::sdbc::ResultSet.</p> + + @see XResultSetUpdate + */ + interface XRowSetApproveBroadcaster; + + /** is the interface for updating row data to the database. + + <p>The optional support of this interface is already implied with the support of the com::sun::star::sdbc::ResultSet service.</p> + + <p>However, note that the additional support of the XRowSetApproveBroadcaster interface results + in a semantical extension: the methods com::sun::star::sdbc::XResultSetUpdate::insertRow(), + com::sun::star::sdbc::XResultSetUpdate::updateRow() and com::sun::star::sdbc::XResultSetUpdate::deleteRow() + will now throw the RowSetVetoException if the action which is to be performed was vetoed + by one of the XRowSetApproveListener's.</p> + */ + [optional] interface com::sun::star::sdbc::XResultSetUpdate; + + /** is the interface for deleting more than one row, identified by its bookmark. + + <p>The optional support of this interface is already implied with the support of the com::sun::star::sdbcx::ResultSet service.</p> + + <p>However, note that the additional support of the XRowSetApproveBroadcaster interface results + in a semantical extension: the method com::sun::star::sdbcx::XDeleteRows::deleteRows() + will now throw the RowSetVetoException if the deletion was vetoed + by one of the XRowSetApproveListener's.</p> + */ + [optional] interface com::sun::star::sdbcx::XDeleteRows; + + /** 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; + + /** gives access to the parameters contained in the SQL statement represented by the component. + + <p>If your <code>RowSet</code> is bound to an SQL command or query which contains parameters, or has + a #Filter or #Order which contains parameters, then those can be accessed + using the <code>XParametersSupplier</code> interface.</p> + + <p>The returned container contains parameter objects which do allow write access to the parameters (which + is equivalent to using the com::sun::star::sdbc::XParameters interface inherited from + com::sun::star::sdbc::RowSet). Additionally, they provide information about the parameters, + such as their name (if they have one), their type, and the like.</p> + */ + [optional] interface XParametersSupplier; + + /** 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; + + + /** 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; + + + /** is the command which should be executed, the type of command depends + on the CommandType. + + <p>In case of a #CommandType of CommandType::COMMAND, + means in case the #Command specifies an SQL statement, the inherited + com::sun::star::sdbc::RowSet::EscapeProcessing + becomes relevant:<br> + It then can be to used to specify whether the SQL statement should be analyzed on the + client side before sending it to the database server.<br> + The default value for com::sun::star::sdbc::RowSet::EscapeProcessing + is `TRUE`. By switching it to `FALSE`, you can pass backend-specific SQL statements, + which are not standard SQL, to your database.</p> + + @see com::sun::star::sdb::CommandType + @see com::sun::star::sdbc::RowSet::EscapeProcessing + */ + [property] string Command; + + /** is the type of the command. + @see com::sun::star::sdb::CommandType + */ + [property] long CommandType; + + /** is the command which is currently used. + @see com::sun::star::sdb::CommandType + */ + [readonly, property] string ActiveCommand; + + + /** indicates whether all results should be discarded or not. + */ + [property] boolean IgnoreResult; + + + /** additional filter for a row set. + */ + [property] string Filter; + + + /** indicates whether the filter should be applied or not, + default is `FALSE`. + */ + [property] boolean ApplyFilter; + + /** additional having clause for the row set + */ + [optional,property] string HavingClause; + + /** additional group by for the row set + */ + [optional,property] string GroupBy; + + /** is an additional sort order definition for a row set. + */ + [property] string Order; + + + /** indicates the privileges for insert, update, and delete. + @see com::sun::star::sdbcx::Privilege + */ + [readonly, property] long Privileges; + + + /** indicates that the current row is modified. + */ + [readonly, property] boolean IsModified; + + + /** indicates that the current row is going to be inserted to the database. + */ + [readonly, property] boolean IsNew; + + + /** contains the number of rows accessed in the data source. + */ + [readonly, property] long RowCount; + + + /** indicates that all rows of the row set have been counted. + */ + [readonly, property] boolean IsRowCountFinal; + + + /** is the name of the table which should be updated, this is usually used + for queries which relate to more than one table. + */ + [optional, property] string UpdateTableName; + + /** is the name of the table catalog + */ + [optional, property] string UpdateCatalogName; + + + /** is the name of the table schema. + */ + [optional, property] string UpdateSchemaName; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/RowSetVetoException.idl b/offapi/com/sun/star/sdb/RowSetVetoException.idl new file mode 100644 index 000000000..0ee35ba89 --- /dev/null +++ b/offapi/com/sun/star/sdb/RowSetVetoException.idl @@ -0,0 +1,42 @@ +/* -*- 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_RowSetVetoException_idl__ +#define __com_sun_star_sdb_RowSetVetoException_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdb { + + +/** is an exception fired whenever a row set operation was cancelled because of + of a veto of an approved listener. + @see com::sun::star::sdb::XRowSetApproveListener + */ +published exception RowSetVetoException: com::sun::star::sdbc::SQLException +{ +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/RowsChangeEvent.idl b/offapi/com/sun/star/sdb/RowsChangeEvent.idl new file mode 100644 index 000000000..7757ce410 --- /dev/null +++ b/offapi/com/sun/star/sdb/RowsChangeEvent.idl @@ -0,0 +1,42 @@ +/* -*- 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_RowsChangeEvent_idl__ +#define __com_sun_star_sdb_RowsChangeEvent_idl__ + +#include <com/sun/star/sdb/RowChangeEvent.idl> + + module com { module sun { module star { module sdb { + + +/** indicates which rows have changed and the type of change action on the row set. + */ +struct RowsChangeEvent: com::sun::star::sdb::RowChangeEvent +{ + + sequence< any > Bookmarks; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SQLContext.idl b/offapi/com/sun/star/sdb/SQLContext.idl new file mode 100644 index 000000000..02f868a14 --- /dev/null +++ b/offapi/com/sun/star/sdb/SQLContext.idl @@ -0,0 +1,53 @@ +/* -*- 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_SQLContext_idl__ +#define __com_sun_star_sdb_SQLContext_idl__ + +#include <com/sun/star/sdbc/SQLWarning.idl> + + module com { module sun { module star { module sdb { + + +/** provides special information about the context where a + com::sun::star::sdbc::SQLException + occurred. As usual + for SQLExceptions, several SQLContext-objects may be chained, then the + most recent context is appended to the list's tail. + + @see com::sun::star::sdbc::XConnection::getWarnings + @see com::sun::star::sdbc::XResultSet::getWarnings + @see com::sun::star::sdbc::XStatement::getWarnings + */ +published exception SQLContext: com::sun::star::sdbc::SQLWarning +{ + /** provides special info about the details where a + com::sun::star::sdbc::SQLException + occurred. + As usual for SQLExceptions, several SQLContext-objects may be chained, then the + most recent context is appended to the list's tail + */ + string Details; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SQLErrorEvent.idl b/offapi/com/sun/star/sdb/SQLErrorEvent.idl new file mode 100644 index 000000000..ae00ab16a --- /dev/null +++ b/offapi/com/sun/star/sdb/SQLErrorEvent.idl @@ -0,0 +1,46 @@ +/* -*- 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_SQLErrorEvent_idl__ +#define __com_sun_star_sdb_SQLErrorEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + + module com { module sun { module star { module sdb { + + +/** is invoked in case of fired database exception triggered by + a database object. + */ +published struct SQLErrorEvent: com::sun::star::lang::EventObject +{ + + /** contains the exception that is going to be fired. + */ + any Reason; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SQLFilterOperator.idl b/offapi/com/sun/star/sdb/SQLFilterOperator.idl new file mode 100644 index 000000000..af1a93e39 --- /dev/null +++ b/offapi/com/sun/star/sdb/SQLFilterOperator.idl @@ -0,0 +1,71 @@ +/* -*- 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_SQLFilterOperator_idl__ +#define __com_sun_star_sdb_SQLFilterOperator_idl__ + +module com { module sun { module star { module sdb { + + +/** These constants are used to specify the filter operator + which should be applied when creating a filter + with the method XSingleSelectQueryComposer::setStructuredFilter(). + + @see com::sun::star::sdb::SingleSelectQueryComposer + @see com::sun::star::sdb::XSingleSelectQueryComposer +*/ +constants SQLFilterOperator +{ + /// equal to + const long EQUAL = 1; + + /// not equal to + const long NOT_EQUAL = 2; + + /// less than + const long LESS = 3; + + /// greater than + const long GREATER = 4; + + /// less or equal than + const long LESS_EQUAL = 5; + + /// greater or equal than + const long GREATER_EQUAL = 6; + + /// like + const long LIKE = 7; + + /// not like + const long NOT_LIKE = 8; + + /// is null + const long SQLNULL = 9; + + /// is not null + const long NOT_SQLNULL = 10; +}; + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SQLQueryComposer.idl b/offapi/com/sun/star/sdb/SQLQueryComposer.idl new file mode 100644 index 000000000..a3346c532 --- /dev/null +++ b/offapi/com/sun/star/sdb/SQLQueryComposer.idl @@ -0,0 +1,66 @@ +/* -*- 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_SQLQueryComposer_idl__ +#define __com_sun_star_sdb_SQLQueryComposer_idl__ + +#include <com/sun/star/sdb/XSQLQueryComposer.idl> + + module com { module sun { module star { module sdbcx { + published interface XTablesSupplier; + published interface XColumnsSupplier; +};};};}; + + module com { module sun { module star { module sdb { + + +/** represents a tool for composing SQL select statements. + + + <p> + It hides the complexity of parsing and evaluating SQL Statements and provides + sophisticated methods for expanding a SQL-Statement with filter and order + criteria. + </p> + */ +published service SQLQueryComposer +{ + + /** access to the composer interface. + */ + interface XSQLQueryComposer; + + + /** access to the selected tables. + */ + interface com::sun::star::sdbcx::XTablesSupplier; + + + /** access the selected columns. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SingleSelectQueryAnalyzer.idl b/offapi/com/sun/star/sdb/SingleSelectQueryAnalyzer.idl new file mode 100644 index 000000000..4b701c9ff --- /dev/null +++ b/offapi/com/sun/star/sdb/SingleSelectQueryAnalyzer.idl @@ -0,0 +1,81 @@ +/* -*- 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_SingleSelectQueryAnalyzer_idl__ +#define __com_sun_star_sdb_SingleSelectQueryAnalyzer_idl__ + +#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl> + + module com { module sun { module star { module sdbcx { +interface XTablesSupplier; +interface XColumnsSupplier; +};};};}; + + module com { module sun { module star { module sdb { + + interface XParametersSupplier; +/** represents a service for analyzing a single select statement. + + <p> + It hides the complexity of parsing and evaluating a single select statement and provides + sophisticated methods for accessing a statements filter, group by, having and order + criteria, as well as the corresponding select columns and tables. + If supported, it even gives access to the parameters. + </p> + + @see com::sun::star::sdb::SingleSelectQueryComposer + */ +service SingleSelectQueryAnalyzer +{ + interface XSingleSelectQueryAnalyzer; + + /** access to the selected tables. + + <p>The selected tables are those present in the <code>FROM</code> part + of a <code>SELECT</code> statement.</p> + + <p>Note that OpenOffice.org since version 2.0.4 also supports queries which are + based on other queries. For example, given that you have a database containing + a query named <code>All Orders</code>, the SQL statement <code>SELECT * FROM "All Orders"</code> + is perfectly valid when used with a SingleSelectQueryAnalyzer.</p> + + <p>In this case, the name container returned by com::sun::star::sdbcx::XTablesSupplier::getTables() + will in fact not return a Table, but a Query object. Semantically, however, + this object still acts as a table in the SQL statement.</p> + + @see XSingleSelectQueryAnalyzer::getQueryWithSubstitution + */ + interface com::sun::star::sdbcx::XTablesSupplier; + + /** access the selected columns. + */ + interface com::sun::star::sdbcx::XColumnsSupplier; + + /** access to the parameters which are used in the where clause. + */ + [optional] interface com::sun::star::sdb::XParametersSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/SingleSelectQueryComposer.idl b/offapi/com/sun/star/sdb/SingleSelectQueryComposer.idl new file mode 100644 index 000000000..bfea134fb --- /dev/null +++ b/offapi/com/sun/star/sdb/SingleSelectQueryComposer.idl @@ -0,0 +1,62 @@ +/* -*- 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_SingleSelectQueryComposer_idl__ +#define __com_sun_star_sdb_SingleSelectQueryComposer_idl__ + +#include <com/sun/star/sdb/SingleSelectQueryAnalyzer.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { + +interface XSingleSelectQueryComposer; +/** represents a service for composing a single select statement. + + <p> + It hides the complexity of parsing and evaluating a single select statement and provides + sophisticated methods for expanding a statement with filter, group by, having and order + criteria. To get the new extended statement use the methods from com::sun::star::sdb::SingleSelectQueryAnalyzer. + </p> + + <p>A SingleSelectQueryComposer is usually obtained from a Connection + using the com::sun::star::lang::XMultiServiceFactory interface.</p> + */ +service SingleSelectQueryComposer +{ + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** access to the analyzer service. + */ + service SingleSelectQueryAnalyzer; + + interface XSingleSelectQueryComposer; + + /** is the original SQL statement set with the interface com::sun::star::sdb::XSingleSelectQueryAnalyzer. + */ + [readonly, property] string Original; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/Table.idl b/offapi/com/sun/star/sdb/Table.idl new file mode 100644 index 000000000..c65702fdd --- /dev/null +++ b/offapi/com/sun/star/sdb/Table.idl @@ -0,0 +1,54 @@ +/* -*- 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_Table_idl__ +#define __com_sun_star_sdb_Table_idl__ + +#include <com/sun/star/sdbcx/Table.idl> + +#include <com/sun/star/sdb/DataSettings.idl> + + module com { module sun { module star { module sdb { + + +/** extends the service + com::sun::star::sdbcx::Table + with additional display information, sorting, and filtering criteria. + */ +published service Table +{ + service com::sun::star::sdbcx::Table; + + + /** is used for customization of data appearance. + */ + service com::sun::star::sdb::DataSettings; + + + /** indicates the privileges for the table. + @see com::sun::star::sdbcx::Privilege + */ + [readonly, property] long Privileges; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/TableDefinition.idl b/offapi/com/sun/star/sdb/TableDefinition.idl new file mode 100644 index 000000000..e1ee4f44d --- /dev/null +++ b/offapi/com/sun/star/sdb/TableDefinition.idl @@ -0,0 +1,45 @@ +/* -*- 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_TableDefinition_idl__ +#define __com_sun_star_sdb_TableDefinition_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { + +/** + This IDL was created from the service's places of use, so it is probably incomplete. + + @since LibreOffice 4.1 + */ +service TableDefinition : com::sun::star::beans::XPropertySet +{ + createDefault(); + + createWithName([in] string Name); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/TableDescriptor.idl b/offapi/com/sun/star/sdb/TableDescriptor.idl new file mode 100644 index 000000000..03f6a1fde --- /dev/null +++ b/offapi/com/sun/star/sdb/TableDescriptor.idl @@ -0,0 +1,50 @@ +/* -*- 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_TableDescriptor_idl__ +#define __com_sun_star_sdb_TableDescriptor_idl__ + +#include <com/sun/star/sdbcx/TableDescriptor.idl> + +#include <com/sun/star/sdb/DataSettings.idl> + + module com { module sun { module star { module sdb { + + +/** extends the service + com::sun::star::sdbcx::TableDescriptor + with additional display information, sorting, and filtering criteria. + */ +published service TableDescriptor +{ + service com::sun::star::sdbcx::TableDescriptor; + + + /** is used for customization of data appearance. + */ + service com::sun::star::sdb::DataSettings; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/TableDesign.idl b/offapi/com/sun/star/sdb/TableDesign.idl new file mode 100644 index 000000000..c084e6ee2 --- /dev/null +++ b/offapi/com/sun/star/sdb/TableDesign.idl @@ -0,0 +1,80 @@ +/* -*- 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_TableDesign_idl__ +#define __com_sun_star_sdb_TableDesign_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 tables. + + <p>This service implements a user interface for creating tables through a graphical design interface.</p> + + <p>The design view of the TableDesign is divided into two parts. The first part contains the rows + where columns can be defined for the table. The second part contains the properties of the selected column.</p> + + @see com::sun::star::sdb::ContentLoader + @see com::sun::star::frame::XDispatch + @see com::sun::star::frame::XDispatchProviderInterceptor + + @since OOo 1.1.2 +*/ + +published service TableDesign +{ + /** allows the component to be plugged into frames. + */ + interface com::sun::star::frame::XController; + + /** is used to initialize the TableDesign. + + <p>Parameters (passed to the method + com::sun::star::lang::XInitialization::initialize()) + have to be instances of com::sun::star::beans::PropertyValue, where the + com::sun::star::beans::PropertyValue::Name member specifies what the parameter controls, + with the com::sun::star::beans::PropertyValue::Value member containing the value + to be used.<br> + Recognized parameters are: + <ul> + <li><b>Frame</b><br> + has to be a com::sun::star::frame::XFrame interface specifying the frame to plug the + TableDesign component into. + </li> + <li><b>DataSourceName</b><br> + The name of the globally registered DataSource to be used for initial display. It is only + meaningful together with the other parameters specifying the object to display. + </li> + <li><b>CurrentTable</b><br> + This is a string giving the name of the object to display initially. + </li> + </ul> + </p> + */ + interface com::sun::star::lang::XInitialization; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/TextConnectionSettings.idl b/offapi/com/sun/star/sdb/TextConnectionSettings.idl new file mode 100644 index 000000000..fecb15005 --- /dev/null +++ b/offapi/com/sun/star/sdb/TextConnectionSettings.idl @@ -0,0 +1,38 @@ +/* -*- 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_TextConnectionSettings_idl__ +#define __com_sun_star_sdb_TextConnectionSettings_idl__ + +#include <com/sun/star/sdb/XTextConnectionSettings.idl> + +module com { module sun { module star { module sdb { + +/** + @since LibreOffice 4.1 +*/ +service TextConnectionSettings : XTextConnectionSettings; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XAlterQuery.idl b/offapi/com/sun/star/sdb/XAlterQuery.idl new file mode 100644 index 000000000..924ddd7fe --- /dev/null +++ b/offapi/com/sun/star/sdb/XAlterQuery.idl @@ -0,0 +1,52 @@ +/* -*- 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_XAlterQuery_idl__ +#define __com_sun_star_sdb_XAlterQuery_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdb { + +/** is used to alter the command of a query. + */ +published interface XAlterQuery: com::sun::star::uno::XInterface +{ + + /** is intended to alter the command of a query object. + @param command + the SQL statement + @param useEscapeProcessing + `TRUE` when escape processing should be used + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void alterCommand([in]string command, [in]boolean useEscapeProcessing) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XBookmarksSupplier.idl b/offapi/com/sun/star/sdb/XBookmarksSupplier.idl new file mode 100644 index 000000000..a91fd9abf --- /dev/null +++ b/offapi/com/sun/star/sdb/XBookmarksSupplier.idl @@ -0,0 +1,51 @@ +/* -*- 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_XBookmarksSupplier_idl__ +#define __com_sun_star_sdb_XBookmarksSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + + + module com { module sun { module star { module sdb { + + +/** provides access to the collection of all bookmarks associated with a data source. + */ +published interface XBookmarksSupplier: com::sun::star::uno::XInterface +{ + + /** @returns the collection of all bookmarks associated with a data source + <p> + A bookmark is simply a string specifying the location of the + bookmarked document. + </p> + */ + com::sun::star::container::XNameAccess getBookmarks(); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XColumn.idl b/offapi/com/sun/star/sdb/XColumn.idl new file mode 100644 index 000000000..1ac46d827 --- /dev/null +++ b/offapi/com/sun/star/sdb/XColumn.idl @@ -0,0 +1,267 @@ +/* -*- 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_XColumn_idl__ +#define __com_sun_star_sdb_XColumn_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + + module com { module sun { module star { module sdbc { + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; +};};};}; + + module com { module sun { module star { module sdb { + + +/** is used to access data which is collected in a row. + */ +published interface XColumn: com::sun::star::uno::XInterface +{ + + /** reports whether the last column read had a value of SQL NULL. + Note that you must first call getXXX on a column to try to read + its value and then call + <code>wasNull()</code> + to see if the value read was SQL NULL. + @returns + `TRUE` if so + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + boolean wasNull() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a String. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + string getString() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as boolean. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + boolean getBoolean() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a byte. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + byte getByte() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a short. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + short getShort() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a long. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + long getInt() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a hyper. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + hyper getLong() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a float. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + float getFloat() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a double. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + double getDouble() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a byte array. + The bytes represent the raw values returned by the driver. + @returns the column value; + if the value is SQL NULL, the result is empty. + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + sequence<byte> getBytes() raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a date object. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::util::Date getDate() + raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a time object. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::util::Time getTime() + raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a datetime object. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::util::DateTime getTimestamp() + raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a stream of + uninterpreted bytes. The value can then be read in chunks from the + stream. This method is particularly suitable for retrieving large + LONGVARBINARY or LONGVARCHAR values. + + + <p> + <b>Note:</b> All the data in the returned stream must be + read prior to getting the value of any other column. The next + call to a get method implicitly closes the stream. Also, a + stream may return 0 when the method + com::sun::star::io::XInputStream::available() + is called whether there is data available or not. + </p> + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getBinaryStream() + raises (com::sun::star::sdbc::SQLException); + + /** gets the value of a column in the current row as a stream of + uninterpreted bytes. The value can then be read in chunks from the + stream. This method is particularly suitable for retrieving large + LONGVARCHAR values. + + <p> + <b>Note:</b> All the data in the returned stream must be + read prior to getting the value of any other column. The next + call to a get method implicitly closes the stream. Also, a + stream may return 0 when the method + com::sun::star::io::XInputStream::available() + is called whether there is data available or not. + </p> + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getCharacterStream() + raises (com::sun::star::sdbc::SQLException); + + /** @returns the value of a column in the current row as an object. + This method uses the given + <code>Map</code> + object + for the custom mapping of the SQL structure or distinct type + that is being retrieved. + @param typeMap + the type map is used to fetch the correct type + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + any getObject([in]com::sun::star::container::XNameAccess typeMap) + raises (com::sun::star::sdbc::SQLException); + + /** gets a REF(<structured-type>) column value from the current row. + + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XRef getRef() raises (com::sun::star::sdbc::SQLException); + + /** gets a BLOB (Binary Large OBject) value in the current row. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XBlob getBlob() raises (com::sun::star::sdbc::SQLException); + + /** gets a CLOB value in the current row of this <code>ResultSet</code> object. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XClob getClob() raises (com::sun::star::sdbc::SQLException); + + /** gets a SQL ARRAY value from the current row. + @returns + the column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XArray getArray() raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XColumnUpdate.idl b/offapi/com/sun/star/sdb/XColumnUpdate.idl new file mode 100644 index 000000000..784f6c75c --- /dev/null +++ b/offapi/com/sun/star/sdb/XColumnUpdate.idl @@ -0,0 +1,199 @@ +/* -*- 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_XColumnUpdate_idl__ +#define __com_sun_star_sdb_XColumnUpdate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + + module com { module sun { module star { module sdb { + + +/** is used to update data which is collected in a row. + */ +published interface XColumnUpdate: com::sun::star::uno::XInterface +{ + + /** gives a nullable column a null value. + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateNull() raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a boolean value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateBoolean([in]boolean x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a byte value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateByte([in]byte x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a short value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateShort([in]short x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a long value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateInt([in]long x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a hyper value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateLong([in]hyper x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a float value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateFloat([in]float x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a double value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateDouble([in]double x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a string value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateString([in]string x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a byte array value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateBytes([in]sequence<byte> x) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a Date value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateDate([in]com::sun::star::util::Date x) + raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a Time value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateTime([in]com::sun::star::util::Time x) + raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a Timestamp value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateTimestamp([in]com::sun::star::util::DateTime x) + raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a stream value. + @param x + the new column value + @param length + the length of the stream + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateBinaryStream([in]com::sun::star::io::XInputStream x, + [in]long length) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with a stream value. + @param x + the new column value + @param length + the length of the stream + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateCharacterStream([in]com::sun::star::io::XInputStream x, + [in]long length) raises (com::sun::star::sdbc::SQLException); + + /** updates a column with an Object value. + @param x + the new column value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateObject([in]any x) + raises (com::sun::star::sdbc::SQLException); + + /** updates a column with an Object value. + @param x + the new column value + @param scale + the scale + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void updateNumericObject([in]any x, [in]long scale) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XCommandPreparation.idl b/offapi/com/sun/star/sdb/XCommandPreparation.idl new file mode 100644 index 000000000..918e5aae7 --- /dev/null +++ b/offapi/com/sun/star/sdb/XCommandPreparation.idl @@ -0,0 +1,72 @@ +/* -*- 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_XCommandPreparation_idl__ +#define __com_sun_star_sdb_XCommandPreparation_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + published interface XPreparedStatement; +};};};}; + + module com { module sun { module star { module sdb { + + +/** is used for preparation of commands. + + <p> + A command could be a table, query, or any kind of SQL statement + prepared by the user. + </p> + */ +published interface XCommandPreparation: com::sun::star::uno::XInterface +{ + + /** creates a + com::sun::star::sdbc::PreparedStatement + 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> + @param command + the command to be prepared. Any SQL statement. + @param commandType + kind of the command + com::sun::star::sdb::CommandType + @returns + the PreparedStatement object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XPreparedStatement prepareCommand([in]string command, [in] long commandType) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XCompletedConnection.idl b/offapi/com/sun/star/sdb/XCompletedConnection.idl new file mode 100644 index 000000000..1e29db206 --- /dev/null +++ b/offapi/com/sun/star/sdb/XCompletedConnection.idl @@ -0,0 +1,61 @@ +/* -*- 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_XCompletedConnection_idl__ +#define __com_sun_star_sdb_XCompletedConnection_idl__ + +#include <com/sun/star/task/XInteractionHandler.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + published interface XConnection; +};};};}; + + module com { module sun { module star { module sdb { + + +/** is used for establishing connections via a factory which is identified + by its name. To complete the information needed for establishing a connection + an interaction handler is used. + */ +published interface XCompletedConnection: com::sun::star::uno::XInterface +{ + + /** attempts to establish a database connection. If information is missing, such as + a user's password, they are completed by user interaction. + @param handler + will be asked when more information is needed + @returns + the Connection object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + com::sun::star::sdbc::XConnection + connectWithCompletion([in]com::sun::star::task::XInteractionHandler handler) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XCompletedExecution.idl b/offapi/com/sun/star/sdb/XCompletedExecution.idl new file mode 100644 index 000000000..7a7553a38 --- /dev/null +++ b/offapi/com/sun/star/sdb/XCompletedExecution.idl @@ -0,0 +1,52 @@ +/* -*- 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_XCompletedExecution_idl__ +#define __com_sun_star_sdb_XCompletedExecution_idl__ + +#include <com/sun/star/task/XInteractionHandler.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdb { + + +/** is used for execution where information for execution may be required from + the user. + */ +published interface XCompletedExecution: com::sun::star::uno::XInterface +{ + + /** completes necessary information before execution, for example parameter values. + @param handler + will be asked when more information is needed + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void executeWithCompletion([in]com::sun::star::task::XInteractionHandler handler) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDataAccessDescriptorFactory.idl b/offapi/com/sun/star/sdb/XDataAccessDescriptorFactory.idl new file mode 100644 index 000000000..8c43f8fb0 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDataAccessDescriptorFactory.idl @@ -0,0 +1,52 @@ +/* -*- 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_XDataAccessDescriptorFactory_idl__ +#define __com_sun_star_sdb_XDataAccessDescriptorFactory_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + +module com { module sun { module star { module sdb { + + +/** allows creating instances of the DataAccessDescriptor service. + + <p>Data access descriptors are finally only bags of properties with a defined + semantics. Depending on the context in which you use them, certain of their + properties are needed or unneeded.<br/> + The descriptor factory allows you to create instances which offer + all properties potentially needed at a descriptor.</p> + */ +interface XDataAccessDescriptorFactory +{ + /** creates a DataAccessDescriptor which supports all properties + defined for this service, even if they're normally optional only. + */ + ::com::sun::star::beans::XPropertySet + createDataAccessDescriptor(); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseAccess.idl b/offapi/com/sun/star/sdb/XDatabaseAccess.idl new file mode 100644 index 000000000..65bff201d --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseAccess.idl @@ -0,0 +1,56 @@ +/* -*- 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_XDatabaseAccess_idl__ +#define __com_sun_star_sdb_XDatabaseAccess_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/XDataSource.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module task { + published interface XInteractionHandler; +};};};}; + + + module com { module sun { module star { module sdb { + + published interface XDatabaseAccessListener; + + +/** is not to be used anymore + @deprecated + */ +published interface XDatabaseAccess: com::sun::star::sdbc::XDataSource +{ + boolean hasConnections(); + com::sun::star::sdbc::XConnection getIsolatedConnection([in]string user, [in]string password) + raises (com::sun::star::sdbc::SQLException); + boolean suspendConnections() raises (com::sun::star::sdbc::SQLException); + void addDatabaseAccessListener([in]XDatabaseAccessListener listener); + void removeDatabaseAccessListener([in]XDatabaseAccessListener listener); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseAccessListener.idl b/offapi/com/sun/star/sdb/XDatabaseAccessListener.idl new file mode 100644 index 000000000..604ec2174 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseAccessListener.idl @@ -0,0 +1,44 @@ +/* -*- 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_XDatabaseAccessListener_idl__ +#define __com_sun_star_sdb_XDatabaseAccessListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + + module com { module sun { module star { module sdb { + + +/** is not to be used anymore + @deprecated + */ +published interface XDatabaseAccessListener: com::sun::star::lang::XEventListener +{ + void connectionChanged([in]com::sun::star::lang::EventObject event); + boolean approveConnectionClosing([in]com::sun::star::lang::EventObject event); + void connectionClosing([in]com::sun::star::lang::EventObject event); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseContext.idl b/offapi/com/sun/star/sdb/XDatabaseContext.idl new file mode 100644 index 000000000..b16334275 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseContext.idl @@ -0,0 +1,81 @@ +/* -*- 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_XDatabaseContext_idl__ +#define __com_sun_star_sdb_XDatabaseContext_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/container/XContainer.idl> +#include <com/sun/star/lang/XSingleServiceFactory.idl> +#include <com/sun/star/container/XNameAccess.idl> +#include <com/sun/star/uno/XNamingService.idl> +#include <com/sun/star/sdb/XDatabaseRegistrations.idl> + +module com { module sun { module star { module sdb { + +/** + Provides an interface for the new-style DatabaseContext service to implement. + + @since LibreOffice 4.0 + */ +published interface XDatabaseContext +{ + /** Enumeration on all registered data sources. + */ + interface com::sun::star::container::XEnumerationAccess; + + /** NameAccess on all registered data sources. + <p>One exception is the com.sun.star.container.XNameAccess::getByName(). + This method also allows to ask + for a DataAccessDescriptor::DatabaseLocation. + </p> + */ + interface com::sun::star::container::XNameAccess; + + /** Interface for registering new datasources. + */ + interface com::sun::star::uno::XNamingService; + + /** Interface for registering listener to get notified when new datasources are created or removed. + */ + interface com::sun::star::container::XContainer; + + /** Interface for creation of new datasources. + */ + interface com::sun::star::lang::XSingleServiceFactory; + + /** allows to access and modify the configuration data for registered data source. + + <p>The main purpose of this interface is to allow you to register data sources which you know + by URL only, and have not yet loaded.</p> + + <p>Also, it hides the details of the configuration data where the data source registrations + are maintained, so if possible at all, you should use this interface, instead of modifying or + querying the configuration data directly.</p> + + @since OOo 3.3 + */ + interface XDatabaseRegistrations; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseEnvironment.idl b/offapi/com/sun/star/sdb/XDatabaseEnvironment.idl new file mode 100644 index 000000000..29d9bc187 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseEnvironment.idl @@ -0,0 +1,53 @@ +/* -*- 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_XDatabaseEnvironment_idl__ +#define __com_sun_star_sdb_XDatabaseEnvironment_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/sdbc/XDriverManager.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + + + module com { module sun { module star { module sdb { + + published interface XDatabaseAccess; + + +/** is not to be used anymore. + + @deprecated + */ +published interface XDatabaseEnvironment: com::sun::star::sdbc::XDriverManager +{ + XDatabaseAccess getDatabaseAccess([in]string URL) + raises (com::sun::star::sdbc::SQLException); + XDatabaseAccess createDatabaseAccess([in]string URL, [in]string title) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl b/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl new file mode 100644 index 000000000..105264277 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseRegistrations.idl @@ -0,0 +1,150 @@ +/* -*- 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_XDatabaseRegistrations_idl__ +#define __com_sun_star_sdb_XDatabaseRegistrations_idl__ + +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/container/ElementExistException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/IllegalAccessException.idl> + + +module com { module sun { module star { module sdb { + +published interface XDatabaseRegistrationsListener; + + +/** provides access to the application-wide registered databases. + + <p>This interface provides a mere wrapper around the respective configuration data, + this way hiding the concrete configuration structure from its clients. You should, + if possible at all, use this interface, instead of modifying or querying the configuration + data directly.</p> + + @since OOo 3.3 + */ +published interface XDatabaseRegistrations +{ + /** determines whether a database is registered under the given name. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty + */ + boolean hasRegisteredDatabase( [in] string Name ) + raises ( ::com::sun::star::lang::IllegalArgumentException + ); + + /** returns the names of all registered databases + */ + sequence< string > + getRegistrationNames(); + + /** returns the location of the database registered under the given name + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty + + @throws ::com::sun::star::container::NoSuchElementException + if there is no database registered under this name + */ + string getDatabaseLocation( [in] string Name ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::container::NoSuchElementException + ); + + /** registers a database, given by location, under a given name + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty, or the given location is invalid. + + @throws ::com::sun::star::container::ElementExistException + if there already is a databases registered under the given name. + */ + void registerDatabaseLocation( [in] string Name, [in] string Location ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::container::ElementExistException + ); + + /** revokes the registration of a database, given by name + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty + + @throws ::com::sun::star::container::NoSuchElementException + if there is no database registered under this name + + @throws ::com::sun::star::lang::IllegalAccessException + if the registration data for this database is read-only + */ + void revokeDatabaseLocation( [in] string Name ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::lang::IllegalAccessException + ); + + /** changes the location of a given database registration + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty, or the given location is invalid. + + @throws ::com::sun::star::container::NoSuchElementException + if there is no database registered under this name + + @throws ::com::sun::star::lang::IllegalAccessException + if the registration data for this database is read-only + */ + void changeDatabaseLocation( [in] string Name, [in] string NewLocation ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::lang::IllegalAccessException + ); + + /** determines whether the registration data for a database given by name is + read-only. + + <p>In this case, attempts to revoke this registration will fail.</p> + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given name is empty + + @throws ::com::sun::star::container::NoSuchElementException + if there is no database registered under this name + */ + boolean isDatabaseRegistrationReadOnly( [in] string Name ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::container::NoSuchElementException + ); + + /** registers a listener which is notified of changes in the registered databases + */ + void addDatabaseRegistrationsListener( [in] XDatabaseRegistrationsListener Listener ); + + /** revokes a previously registered listener + */ + void removeDatabaseRegistrationsListener( [in] XDatabaseRegistrationsListener Listener ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl b/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl new file mode 100644 index 000000000..80c9b9307 --- /dev/null +++ b/offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl @@ -0,0 +1,62 @@ +/* -*- 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_XDatabaseRegistrationsListener_idl__ +#define __com_sun_star_sdb_XDatabaseRegistrationsListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/sdb/DatabaseRegistrationEvent.idl> + + +module com { module sun { module star { module sdb { + + +/** implemented by components which want to be notified of changes in the application-wide registered + databases. + + @see XDatabaseRegistrations + + @since OOo 3.3 + */ +published interface XDatabaseRegistrationsListener : ::com::sun::star::lang::XEventListener +{ + /** called when a database has been registered + */ + void registeredDatabaseLocation( [in] DatabaseRegistrationEvent Event ); + + /** called when a database registration has been revoked + */ + void revokedDatabaseLocation( [in] DatabaseRegistrationEvent Event ); + + /** called when the location of a registered database changed + + <p>Note that this talks about registration data only. That is, if the actual file denoted by the database + registration is moved, this is in no way monitored or reported. Only (successful) calls to + XDatabaseRegistrations::changeDatabaseLocation() are reported here.</p> + */ + void changedDatabaseLocation( [in] DatabaseRegistrationEvent Event ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XDocumentDataSource.idl b/offapi/com/sun/star/sdb/XDocumentDataSource.idl new file mode 100644 index 000000000..33dbcdb4c --- /dev/null +++ b/offapi/com/sun/star/sdb/XDocumentDataSource.idl @@ -0,0 +1,60 @@ +/* -*- 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_XDocumentDataSource_idl__ +#define __com_sun_star_sdb_XDocumentDataSource_idl__ + +#include <com/sun/star/sdb/XOfficeDatabaseDocument.idl> + + + module com { module sun { module star { module sdb { + +/** simplifies the accessing of data sources and their corresponding database document. + + <p> + The interface can be used to access the data source of the database document. + </p> + @see OfficeDatabaseDocument + */ +interface XDocumentDataSource +{ + /** provides access to the one and only OfficeDatabaseDocument + which the data source is based on. + + <p>The component returned by this attribute is an OfficeDatabaseDocument.</p> + + <p>Though there is a 1-to-1 relationship between database documents and data sources, + each of the two can exist without its counterpart, but create this counterpart on request + only. As a consequence, the document obtained via this attribute might be newly created, + which implies that the caller is now responsible for it. In particular, the caller is + responsible for calling com::sun::star::util::XCloseable::close() + on the document as soon as it's not needed anymore.</p> + + <p>Additionally, if the caller does long-lasting processing on the document, it's advised + to add itself as com::sun::star::util::XCloseListener to the document, + to prevent closing as long as the processing lasts.</p> + */ + [readonly, attribute] XOfficeDatabaseDocument DatabaseDocument; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XFormDocumentsSupplier.idl b/offapi/com/sun/star/sdb/XFormDocumentsSupplier.idl new file mode 100644 index 000000000..4ce5cb266 --- /dev/null +++ b/offapi/com/sun/star/sdb/XFormDocumentsSupplier.idl @@ -0,0 +1,50 @@ +/* -*- 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_XFormDocumentsSupplier_idl__ +#define __com_sun_star_sdb_XFormDocumentsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdb { + + +/** provides the access to a container of database forms. + @see Forms + */ +interface XFormDocumentsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of forms. + @returns + the form documents + @see Forms + */ + com::sun::star::container::XNameAccess getFormDocuments(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl b/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl new file mode 100644 index 000000000..0d9b7a20d --- /dev/null +++ b/offapi/com/sun/star/sdb/XInteractionDocumentSave.idl @@ -0,0 +1,54 @@ +/* -*- 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_XInteractionDocumentSave_idl__ +#define __com_sun_star_sdb_XInteractionDocumentSave_idl__ + +#include <com/sun/star/task/XInteractionContinuation.idl> +#include <com/sun/star/ucb/XContent.idl> + +module com { module sun { module star { module sdb { + + +/** An interaction continuation handing back a document name. + + <p> + This continuation is typically used in conjunction with a + com::sun::star::sdb::DocumentSaveRequest. + </p> + @since OOo 2.0 +*/ +interface XInteractionDocumentSave: com::sun::star::task::XInteractionContinuation +{ + /** set the document name chosen by the interaction handler + @param Name + the name of the document + @param Content + the content where the document should store itself + */ + void setName( [in] string Name, [in] com::sun::star::ucb::XContent Content); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XInteractionSupplyParameters.idl b/offapi/com/sun/star/sdb/XInteractionSupplyParameters.idl new file mode 100644 index 000000000..1d28ea2d7 --- /dev/null +++ b/offapi/com/sun/star/sdb/XInteractionSupplyParameters.idl @@ -0,0 +1,51 @@ +/* -*- 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_XInteractionSupplyParameters_idl__ +#define __com_sun_star_sdb_XInteractionSupplyParameters_idl__ + +#include <com/sun/star/task/XInteractionContinuation.idl> +#include <com/sun/star/beans/PropertyValue.idl> + +module com { module sun { module star { module sdb { + + +/** An interaction continuation handing back parameter data. + + <p> + This continuation is typically used in conjunction with a + com::sun::star::sdb::ParametersRequest. + </p> +*/ +published interface XInteractionSupplyParameters: com::sun::star::task::XInteractionContinuation +{ + /** set the parameters chosen by the interaction handler + @param Values + the parameters to set + */ + void setParameters( [in] sequence< com::sun::star::beans::PropertyValue > Values); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XOfficeDatabaseDocument.idl b/offapi/com/sun/star/sdb/XOfficeDatabaseDocument.idl new file mode 100644 index 000000000..3f94aeaed --- /dev/null +++ b/offapi/com/sun/star/sdb/XOfficeDatabaseDocument.idl @@ -0,0 +1,58 @@ +/* -*- 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_XOfficeDatabaseDocument_idl__ +#define __com_sun_star_sdb_XOfficeDatabaseDocument_idl__ + +#include <com/sun/star/sdb/XFormDocumentsSupplier.idl> +#include <com/sun/star/sdb/XReportDocumentsSupplier.idl> +#include <com/sun/star/sdbc/XDataSource.idl> +#include <com/sun/star/document/XDocumentSubStorageSupplier.idl> + + +module com { module sun { module star { module sdb { + +/** simplifies the accessing of data sources, and it's corresponding database document and forms, and reports. +*/ +interface XOfficeDatabaseDocument +{ + /** allows to access the supplier for forms. + @see com::sun::star::sdb::Forms + */ + interface com::sun::star::sdb::XFormDocumentsSupplier; + + /** allows to access the supplier for reports. + @see com::sun::star::sdb::Reports + */ + interface com::sun::star::sdb::XReportDocumentsSupplier; + + /** allows the access to all sub storages in the office database document. + */ + interface com::sun::star::document::XDocumentSubStorageSupplier; + + /** provides access to the one and only DataSource + associated with this document + */ + [readonly, attribute] com::sun::star::sdbc::XDataSource DataSource; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XParametersSupplier.idl b/offapi/com/sun/star/sdb/XParametersSupplier.idl new file mode 100644 index 000000000..acaf1428e --- /dev/null +++ b/offapi/com/sun/star/sdb/XParametersSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_XParametersSupplier_idl__ +#define __com_sun_star_sdb_XParametersSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XIndexAccess.idl> + + module com { module sun { module star { module sdb { + + +/** provides the access to a container of parameters, typically used for a prepared + statement. + */ +published interface XParametersSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of parameters. + @returns + the parameters + */ + com::sun::star::container::XIndexAccess getParameters(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XQueriesSupplier.idl b/offapi/com/sun/star/sdb/XQueriesSupplier.idl new file mode 100644 index 000000000..509a5e924 --- /dev/null +++ b/offapi/com/sun/star/sdb/XQueriesSupplier.idl @@ -0,0 +1,52 @@ +/* -*- 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_XQueriesSupplier_idl__ +#define __com_sun_star_sdb_XQueriesSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdb { + + +/** provides the access to a container of database queries. + */ +published interface XQueriesSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of queries. + + <p>The single elements of the container support the Query service.</p> + + @return + the queries belonging to database connection at which the XQueriesSupplier interface + is exposed. + */ + com::sun::star::container::XNameAccess getQueries(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XQueryDefinition.idl b/offapi/com/sun/star/sdb/XQueryDefinition.idl new file mode 100644 index 000000000..064a7bba8 --- /dev/null +++ b/offapi/com/sun/star/sdb/XQueryDefinition.idl @@ -0,0 +1,52 @@ +/* -*- 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_XQueryDefinition_idl__ +#define __com_sun_star_sdb_XQueryDefinition_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/ucb/XContent.idl> +#include <com/sun/star/lang/XComponent.idl> + + module com { module sun { module star { module sdb { + + +/** + @since LibreOffice 4.1 + */ +published interface XQueryDefinition +{ + + /** access to the owning database definition object. + */ + interface com::sun::star::beans::XPropertySet; + + interface com::sun::star::ucb::XContent; + + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XQueryDefinitionsSupplier.idl b/offapi/com/sun/star/sdb/XQueryDefinitionsSupplier.idl new file mode 100644 index 000000000..1a838ad68 --- /dev/null +++ b/offapi/com/sun/star/sdb/XQueryDefinitionsSupplier.idl @@ -0,0 +1,48 @@ +/* -*- 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_XQueryDefinitionsSupplier_idl__ +#define __com_sun_star_sdb_XQueryDefinitionsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdb { + + +/** provides the access to a container of database command definitions. + */ +published interface XQueryDefinitionsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of commands. + @returns + the query definitions + */ + com::sun::star::container::XNameAccess getQueryDefinitions(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XReportDocumentsSupplier.idl b/offapi/com/sun/star/sdb/XReportDocumentsSupplier.idl new file mode 100644 index 000000000..550f18c7d --- /dev/null +++ b/offapi/com/sun/star/sdb/XReportDocumentsSupplier.idl @@ -0,0 +1,50 @@ +/* -*- 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_XReportDocumentsSupplier_idl__ +#define __com_sun_star_sdb_XReportDocumentsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdb { + + +/** provides the access to a container of database reports. + @see Reports + */ +interface XReportDocumentsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of reports. + @returns + the report documents + @see Reports + */ + com::sun::star::container::XNameAccess getReportDocuments(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XResultSetAccess.idl b/offapi/com/sun/star/sdb/XResultSetAccess.idl new file mode 100644 index 000000000..825b904e9 --- /dev/null +++ b/offapi/com/sun/star/sdb/XResultSetAccess.idl @@ -0,0 +1,59 @@ +/* -*- 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_XResultSetAccess_idl__ +#define __com_sun_star_sdb_XResultSetAccess_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSet; +}; }; }; }; + + + + module com { module sun { module star { module sdb { + + +/** is the interface to create a + com::sun::star::sdbc::ResultSet + based on the object providing the interface. + */ +published interface XResultSetAccess: com::sun::star::uno::XInterface +{ + + /** returns a new + com::sun::star::sdbc::ResultSet + based on the object. + @returns + the new created ResultSet object + */ + com::sun::star::sdbc::XResultSet createResultSet() raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowSetApproveBroadcaster.idl b/offapi/com/sun/star/sdb/XRowSetApproveBroadcaster.idl new file mode 100644 index 000000000..39da40083 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowSetApproveBroadcaster.idl @@ -0,0 +1,54 @@ +/* -*- 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_XRowSetApproveBroadcaster_idl__ +#define __com_sun_star_sdb_XRowSetApproveBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module sdb { + + published interface XRowSetApproveListener; + + +/** provides the possibility of reviving an event before changing the content + of a row set. + */ +published interface XRowSetApproveBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive the events "approveCursorMove", + "approveRowChange", and "approveRowSetChange". + */ + void addRowSetApproveListener( + [in]XRowSetApproveListener listener ); + + /** removes the specified listener. + */ + void removeRowSetApproveListener( + [in]XRowSetApproveListener listener ); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowSetApproveListener.idl b/offapi/com/sun/star/sdb/XRowSetApproveListener.idl new file mode 100644 index 000000000..70955901e --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowSetApproveListener.idl @@ -0,0 +1,62 @@ +/* -*- 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_XRowSetApproveListener_idl__ +#define __com_sun_star_sdb_XRowSetApproveListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + +#include <com/sun/star/sdb/RowChangeEvent.idl> + + module com { module sun { module star { module sdb { + + +/** is used for approving the moving and changing of row set actions. + */ +published interface XRowSetApproveListener: com::sun::star::lang::XEventListener +{ + + /** is called before a row set's cursor is moved. + @param event + the event which happened + @returns `TRUE` when moving is allowed, otherwise `FALSE` + */ + boolean approveCursorMove([in]com::sun::star::lang::EventObject event); + + /** is called before a row is inserted, updated, or deleted. + @param event + the event which happened + @returns `TRUE` when changing is allowed, otherwise `FALSE` + */ + boolean approveRowChange([in]RowChangeEvent event); + + /** is called before a row set is changed, or in other words + before a row set is reexecuted. + @param event + the event which happened + @returns `TRUE` when changing is allowed, otherwise `FALSE` + */ + boolean approveRowSetChange([in]com::sun::star::lang::EventObject event); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowSetChangeBroadcaster.idl b/offapi/com/sun/star/sdb/XRowSetChangeBroadcaster.idl new file mode 100644 index 000000000..632c4ce48 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowSetChangeBroadcaster.idl @@ -0,0 +1,54 @@ +/* -*- 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_XRowSetChangeBroadcaster_idl__ +#define __com_sun_star_sdb_XRowSetChangeBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module sdb { + +interface XRowSetChangeListener; + + +/** broadcasts changes in the <code>RowSet</code> supplied by a component + + @see XRowSetSupplier + @see XRowSetChangeListener + @since OOo 3.2 + */ +interface XRowSetChangeBroadcaster +{ + /** adds a listener to be notified when the <code>RowSet</code> supplied by the component changes. + */ + void addRowSetChangeListener( [in] XRowSetChangeListener iListener ); + + /** removes a previously added listener. + */ + void removeRowSetChangeListener( [in] XRowSetChangeListener iListener ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowSetChangeListener.idl b/offapi/com/sun/star/sdb/XRowSetChangeListener.idl new file mode 100644 index 000000000..8e178b962 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowSetChangeListener.idl @@ -0,0 +1,50 @@ +/* -*- 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_XRowSetChangeListener_idl__ +#define __com_sun_star_sdb_XRowSetChangeListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module sdb { + + +/** is implemented by components which want to be notified when the <code>RowSet</code> supplied + by a XRowSetSupplier changes. + + @see XRowSetChangeBroadcaster + @see XRowSetSupplier + @since OOo 3.2 + */ + interface XRowSetChangeListener : ::com::sun::star::lang::XEventListener +{ + /** notifies the listener that the <code>RowSet</code> associated with a XRowSetSupplier + has changed. + */ + void onRowSetChanged( [in] ::com::sun::star::lang::EventObject iEvent ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowSetSupplier.idl b/offapi/com/sun/star/sdb/XRowSetSupplier.idl new file mode 100644 index 000000000..8b3950420 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowSetSupplier.idl @@ -0,0 +1,59 @@ +/* -*- 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_XRowSetSupplier_idl__ +#define __com_sun_star_sdb_XRowSetSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/XRowSet.idl> + + module com { module sun { module star { module sdb { + + +/** uses a row set as datasource. + + @see XRowSetChangeBroadcaster + */ +published interface XRowSetSupplier: com::sun::star::uno::XInterface +{ + + /** provides access to the data source. + @returns + the RowSet object + */ + com::sun::star::sdbc::XRowSet getRowSet(); + + + /** sets the data source. + @param xDataSource + the RowSet object to set + */ + void setRowSet( [in] com::sun::star::sdbc::XRowSet xDataSource ); + +}; + + +}; }; }; }; + +#endif + +/*=========================================================================== +===========================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl b/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl new file mode 100644 index 000000000..06ab89cd3 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl @@ -0,0 +1,54 @@ +/* -*- 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_XRowsChangeBroadcaster_idl__ +#define __com_sun_star_sdb_XRowsChangeBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module sdb { + +interface XRowsChangeListener; + + +/** broadcasts changes in the <code>RowSet</code> supplied by a component + + @see XRowSetSupplier + @see XRowsChangeListener + @since OOo 3.3 + */ +interface XRowsChangeBroadcaster +{ + /** adds a listener to be notified when the <code>RowSet</code> supplied by the component changes. + */ + void addRowsChangeListener( [in] XRowsChangeListener listener ); + + /** removes a previously added listener. + */ + void removeRowsChangeListener( [in] XRowsChangeListener listener ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XRowsChangeListener.idl b/offapi/com/sun/star/sdb/XRowsChangeListener.idl new file mode 100644 index 000000000..fe25ec431 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowsChangeListener.idl @@ -0,0 +1,48 @@ +/* -*- 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_XRowsChangeListener_idl__ +#define __com_sun_star_sdb_XRowsChangeListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/sdb/RowsChangeEvent.idl> + + module com { module sun { module star { module sdb { + + +/** is used for receiving "rowsChanged" events + posted by, for example, a row set. + */ +interface XRowsChangeListener: com::sun::star::lang::XEventListener +{ + + /** is called when rows are inserted, updated, or deleted. + @param event + contains information about the event + */ + void rowsChanged([in]com::sun::star::sdb::RowsChangeEvent event); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSQLErrorBroadcaster.idl b/offapi/com/sun/star/sdb/XSQLErrorBroadcaster.idl new file mode 100644 index 000000000..e820eb805 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSQLErrorBroadcaster.idl @@ -0,0 +1,56 @@ +/* -*- 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_XSQLErrorBroadcaster_idl__ +#define __com_sun_star_sdb_XSQLErrorBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdb/XSQLErrorListener.idl> + + module com { module sun { module star { module sdb { + + +/** interface for notifying potential listeners + of + com::sun::star::sdbc::SQLException + s posted by any database object. + */ +published interface XSQLErrorBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive the event "errorOccurred" + */ + void addSQLErrorListener( + [in]XSQLErrorListener Listener ); + + /** removes the specified listener. + */ + void removeSQLErrorListener( + [in]XSQLErrorListener Listener ); +}; + + +}; }; }; }; + + +#endif +/*=========================================================================== +===========================================================================*/ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSQLErrorListener.idl b/offapi/com/sun/star/sdb/XSQLErrorListener.idl new file mode 100644 index 000000000..542c8f23a --- /dev/null +++ b/offapi/com/sun/star/sdb/XSQLErrorListener.idl @@ -0,0 +1,51 @@ +/* -*- 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_XSQLErrorListener_idl__ +#define __com_sun_star_sdb_XSQLErrorListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + +#include <com/sun/star/sdb/SQLErrorEvent.idl> + + module com { module sun { module star { module sdb { + + +/** the listener interface for receiving "errorOccured" events + posted by any database object. + */ +published interface XSQLErrorListener: com::sun::star::lang::XEventListener +{ + + /** invoked when a database error occurs, just before a + com::sun::star::sdbc::SQLException + is thrown to the application. + @param aEvent + the event which occurred + */ + void errorOccured([in]com::sun::star::sdb::SQLErrorEvent aEvent); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSQLQueryComposer.idl b/offapi/com/sun/star/sdb/XSQLQueryComposer.idl new file mode 100644 index 000000000..630e947a2 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSQLQueryComposer.idl @@ -0,0 +1,148 @@ +/* -*- 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_XSQLQueryComposer_idl__ +#define __com_sun_star_sdb_XSQLQueryComposer_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + + module com { module sun { module star { module sdb { + + +/** should be provided by a tool which simplifies the handling with SQL select statements. + + <p> + The interface can be used for composing SELECT statements without knowing the + structure of the used query. + </p> + */ +published interface XSQLQueryComposer: com::sun::star::uno::XInterface +{ + + /** returns the query used for composing. + @returns + the query + */ + string getQuery(); + + /** sets a new query for the composer, which may be expanded by filters + and sort criteria. + @param command + the command to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void setQuery([in] string command ) + raises (com::sun::star::sdbc::SQLException); + + /** returns the query composed with filters and sort criteria. + @returns + the composed query + */ + string getComposedQuery(); + + /** returns the currently used filter. + + <p> + The filter criteria returned is part of the where condition of the + select command, but it does not contain the where token. + </p> + @returns + the filter + */ + string getFilter(); + + /** returns the currently used filter. + <p> + The filter criteria is split into levels. Each level represents the + OR criteria. Within each level, the filters are provided as an AND criteria + with the name of the column and the filter condition. The filter condition + is of type string. + </p> + @returns + the structured filter + */ + sequence< sequence<com::sun::star::beans::PropertyValue> > + getStructuredFilter(); + + /** returns the currently used sort order. + + + <p> + The order criteria returned is part of the ORDER BY clause of the + select command, but it does not contain the ORDER BY keyword . + </p> + @returns + the order + */ + string getOrder(); + + /** appends a new filter condition by a + com::sun::star::sdb::DataColumn + providing the name and the value for the filter. + @param column + the column which is used to create a filter + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendFilterByColumn([in] com::sun::star::beans::XPropertySet column) + raises (com::sun::star::sdbc::SQLException); + + /** appends an additional part to the sort order criteria of the select + statement. + @param column + the column which is used to create an order part + @param ascending + `TRUE` when the order should be ascending, otherwise `FALSE` + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendOrderByColumn([in] com::sun::star::beans::XPropertySet column, + [in] boolean ascending) + raises (com::sun::star::sdbc::SQLException); + + /** makes it possible to set a filter condition for the query. + @param filter + the filter to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void setFilter([in] string filter) + raises (com::sun::star::sdbc::SQLException); + + /** makes it possible to set a sort condition for the query. + @param order + the order part to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void setOrder([in] string order) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSQLQueryComposerFactory.idl b/offapi/com/sun/star/sdb/XSQLQueryComposerFactory.idl new file mode 100644 index 000000000..67332fcb1 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSQLQueryComposerFactory.idl @@ -0,0 +1,44 @@ +/* -*- 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_XSQLQueryComposerFactory_idl__ +#define __com_sun_star_sdb_XSQLQueryComposerFactory_idl__ + +#include <com/sun/star/sdb/XSQLQueryComposer.idl> + + module com { module sun { module star { module sdb { + + +/** is a factory for instances of service com::sun::star::sdb::SQLQueryComposer. + */ +published interface XSQLQueryComposerFactory: com::sun::star::uno::XInterface +{ + + /** creates a new query composer. + @returns + the SQLQueryComposer object + */ + com::sun::star::sdb::XSQLQueryComposer createQueryComposer(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl new file mode 100644 index 000000000..df6e33d73 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl @@ -0,0 +1,227 @@ +/* -*- 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_XSingleSelectQueryAnalyzer_idl__ +#define __com_sun_star_sdb_XSingleSelectQueryAnalyzer_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/sdbc/SQLException.idl> + +module com { module sun { module star { module container { +published interface XIndexAccess; +};};};}; + + module com { module sun { module star { module sdb { + + +/** simplifies the analyzing of single select statements. + + <p> + The interface can be used for analyzing single SELECT statements without knowing the + structure of the used query. + </p> + */ +interface XSingleSelectQueryAnalyzer : com::sun::star::uno::XInterface +{ + + /** returns the query. + @returns + the query + */ + string getQuery(); + + /** sets a new query for the composer, which may be expanded by filters, group by, having + and sort criteria. + @param command + the single select statement to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't a single select statement + or the statement isn't valid + or the statement can not be parsed. + */ + void setQuery([in] string command ) + raises (com::sun::star::sdbc::SQLException); + // FILTER + + /** returns the used filter. + <p> + The filter criteria returned is part of the where condition of the + select command, but it does not contain the where token. + </p> + @returns + the filter + */ + string getFilter(); + + /** returns the currently used filter. + <p> + The filter criteria is split into levels. Each level represents the + OR criteria. Within each level, the filters are provided as an AND criteria + with the name of the column and the filter condition. The filter condition + is of type string. The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + </p> + @returns + the structured filter + */ + sequence< sequence<com::sun::star::beans::PropertyValue> > + getStructuredFilter(); + + // GROUP BY + + /** returns the currently used GROUP BY. + <p> + The group criteria returned is part of the GROUP BY clause of the + select command, but it does not contain the GROUP BY keyword . + </p> + @returns + the group + */ + string getGroup(); + + /** returns the currently used group. + <p> + The columns returned from the GROUP BY clause. + </p> + @returns + a collection of com::sun::star::sdb::GroupColumn which form the GROUP BY. + */ + com::sun::star::container::XIndexAccess getGroupColumns(); + + // HAVING + + /** returns the used HAVING filter. + <p> + The HAVING filter criteria returned is part of the HAVING condition of the + select command, but it does not contain the HAVING token. + </p> + @returns + the filter + */ + string getHavingClause(); + + /** returns the currently used HAVING filter. + <p> + The HAVING filter criteria is split into levels. Each level represents the + OR criteria. Within each level, the filters are provided as an AND criteria + with the name of the column and the filter condition. The filter condition + is of type string. The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + </p> + @returns + the structured HAVING filter + */ + sequence< sequence<com::sun::star::beans::PropertyValue> > + getStructuredHavingClause(); + + // ORDER BY + /** returns the currently used sort order. + <p> + The order criteria returned is part of the ORDER BY clause of the + select command, but it does not contain the ORDER BY keyword . + </p> + @returns + the order + */ + string getOrder(); + + /** returns the currently used sort order. + <p> + The order criteria returned is part of the ORDER BY clause of the + select command, but it does not contain the ORDER BY keyword . + </p> + @returns + a collection of com::sun::star::sdb::OrderColumn which form the ORDER BY. + */ + com::sun::star::container::XIndexAccess getOrderColumns(); + + /** returns the query previously set at the analyzer, with all application-level + features being substituted by their database-level counterparts. + + <p>The XSingleSelectQueryAnalyzer is an application-level component, + which in some respect understands SQL features usually not present at the database + level. As a prominent example, you might pass a <code>SELECT</code> statement to the analyzer + which is based on another query.</p> + + <p>While all other methods will handle those additional features transparently - e.g. + the query in the <code>FROM</code> part of a <code>SELECT</code> statement will be handled + as if it really is a table -, <code>getQueryWithSubstitution</code> gives you the SQL statement + where all those features have been stripped, and replaced with appropriate standard SQL.</p> + + <p>For example, consider a database document which contains a client-side query named <code>All Orders</code>. + This query is not known to the underlying database, so an SQL statement like + <code>SELECT * from "All Orders"</code> would be rejected by the database. However, instantiating + a SingleSelectQueryAnalyzer at the Connection object, and passing it the above query, + you can then use <code>getQueryWithSubstitution</code> to retrieve a statement where <code>"All Orders"</code> + has been replaced with the <code>SELECT</code> statement which actually constitutes the <code>"All Orders"</code> + query.</p> + + @throws com::sun::star::sdbc::SQLException + if the query represented cannot be completely substituted. A usual case for this is a recursion in + the sub queries: Consider a query named <code>foo</code>, which is defined as <code>SELECT * FROM "bar"</code>. + Now assume that <code>bar</code> is a query defined as <code>SELECT * FROM "foo"</code>. Passing either + of those statements to an analyzer, and calling getQueryWithSubstitution(), would result + in an exception being thrown, since it's impossible to substitute the sub queries with their + constituting statements. + + @see Connection + @see XQueriesSupplier + @see DatabaseDocument + + @since OOo 2.0.4 + */ + string getQueryWithSubstitution() + raises (com::sun::star::sdbc::SQLException); + + /** sets a new query for the composer, which may be expanded by filters, group by, having + and sort criteria. + @param Command + is the command which should be executed, the type of command depends + on the CommandType. + + <p>In case of a \p CommandType of com::sun::star::sdb::CommandType::COMMAND, + means in case the \p Command specifies an SQL statement, the inherited + com::sun::star::sdbc::RowSet::EscapeProcessing + becomes relevant:<br/> + It then can be to used to specify whether the SQL statement should be analyzed on the + client side before sending it to the database server.<br/> + The default value for com::sun::star::sdbc::RowSet::EscapeProcessing + is `TRUE`. By switching it to `FALSE`, you can pass backend-specific SQL statements, + which are not standard SQL, to your database.</p> + + @see com::sun::star::sdb::CommandType + @see com::sun::star::sdbc::RowSet::EscapeProcessing + @param CommandType + is the type of the command. + @see com::sun::star::sdb::CommandType + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't a single select statement + or the statement isn't valid + or the statement can not be parsed. + */ + void setCommand([in] string Command ,[in] long CommandType) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl new file mode 100644 index 000000000..2a5369602 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl @@ -0,0 +1,235 @@ +/* -*- 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_XSingleSelectQueryComposer_idl__ +#define __com_sun_star_sdb_XSingleSelectQueryComposer_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl> + + + module com { module sun { module star { module sdb { + + +/** simplifies the composing of single select statements. + + <p> + The interface can be used for composing single SELECT statements without knowing the + structure of the used query. + </p> + + @see com::sun::star::sdb::SingleSelectQueryComposer + */ +interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer +{ + // FILTER + + /** makes it possible to set a filter condition for the query. + @param filter + the filter to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't valid + or the statement isn't parsable. + */ + void setFilter([in] string filter) + raises (com::sun::star::sdbc::SQLException); + + /** appends a new set of filter criteria which is split into levels. + @param filter + The filter criteria is split into levels. Each level represents the + OR criteria. Within each level, the filters are provided as an AND criteria + with the name of the column and the filter condition. The filter condition + is of type string. The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void setStructuredFilter([in] sequence< sequence<com::sun::star::beans::PropertyValue> > filter) + raises (com::sun::star::sdbc::SQLException,com::sun::star::lang::IllegalArgumentException); + + /** appends a new filter condition by a + com::sun::star::sdb::DataColumn + providing the name and the value for the filter. + The value property must be supported by the com::sun::star::sdb::DataColumn. + @param column + the column which is used to create a filter + @param andCriteria + If `TRUE` the filter condition will be appended as an AND condition, otherwise + the new filter condition will be appended as OR criteria. + E.g. (xx AND bb AND cc) OR newCriteria + @param filterOperator + The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendFilterByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria,[in] long filterOperator) + raises (com::sun::star::sdbc::SQLException, com::sun::star::lang::WrappedTargetException); + + // GROUP BY + + + /** makes it possible to set a group for the query. + @param group + the group part to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't valid + or the statement isn't parsable. + */ + void setGroup([in] string group) + raises (com::sun::star::sdbc::SQLException); + + + /** appends an additional part to the group criteria of the select + statement. The column must be a com::sun::star::sdbcx::Column. + @param column + the column which is used to create a group part + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendGroupByColumn([in] com::sun::star::beans::XPropertySet column) + raises (com::sun::star::sdbc::SQLException); + + // HAVING + + /** makes it possible to set a HAVING filter condition for the query. + @param filter + the filter to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't valid + or the statement isn't parsable. + */ + void setHavingClause([in] string filter) + raises (com::sun::star::sdbc::SQLException); + + + /** appends a new set of HAVING filter criteria which is split into levels. + @param filter + The HAVING filter criteria is split into levels. Each level represents the + OR criteria. Within each level, the filters are provided as an AND criteria + with the name of the column and the filter condition. The filter condition + is of type string. The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void setStructuredHavingClause([in] sequence< sequence<com::sun::star::beans::PropertyValue> > filter) + raises (com::sun::star::sdbc::SQLException); + + /** appends a new HAVING filter condition by a + com::sun::star::sdb::DataColumn + providing the name and the value for the filter. + @param column + the column which is used to create a filter + @param andCriteria + If `TRUE` the filter condition will be appended as an AND condition, otherwise + the new filter condition will be appended as OR criteria. + E.g. (xx AND bb AND cc) OR newCriteria + @param filterOperator + The operator used, is defined by com::sun::star::sdb::SQLFilterOperator. + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendHavingClauseByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria,[in] long filterOperator) + raises (com::sun::star::sdbc::SQLException, com::sun::star::lang::WrappedTargetException); + + // ORDER BY + + /** makes it possible to set a sort condition for the query. + @param order + the order part to set + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the order isn't valid + or the statement isn't parsable. + */ + void setOrder([in] string order) + raises (com::sun::star::sdbc::SQLException); + + + /** appends an additional part to the sort order criteria of the select + statement. The column must be a com::sun::star::sdbcx::Column. + @param column + the column which is used to create an order part + @param ascending + `TRUE` when the order should be ascending, otherwise if `FALSE` descending. + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendOrderByColumn([in] com::sun::star::beans::XPropertySet column, + [in] boolean ascending) + raises (com::sun::star::sdbc::SQLException); + + // cumulative composing + + /** sets a new elementary query for the composer + + <p>An elementary query or statement is a (single select) statement whose parts are + not covered by the various set and get methods of the composer. That is, if the + elementary statement contains a filter clause, a call to + XSingleSelectQueryAnalyzer::getFilter() will not return you this + filter. Instead, only filters which have been set using for instance setFilter() + are covered by the get methods.</p> + + <p>The only methods which take all parts of the elementary statement into account are + XSingleSelectQueryAnalyzer::getQuery() and + XSingleSelectQueryAnalyzer::getQueryWithSubstitution(), which always returns + the complete composed query.</p> + + <p>As a result, you can use the composer to build cumulative filter expressions. That + is, you can set #ElementaryQuery to a statement already containing + filters, and then use setFilter() to append additional filters.</p> + + <p>The very same holds for sort orders, <code>HAVING</code> and <code>GROUP BY</code> + clauses.</p> + + <p>There are various use cases for this. For instance, you might want to use the + statement represented by a QueryDefinition, and extend it with additional + filters or sort orders, while not touching the respective parts already present + in QueryDefinition::Command. This can be achieved by setting the + QueryDefinition::Command as #ElementaryQuery of a + SingleSelectQueryComposer.</p> + + <p>If, in such a scenario, you would be interested in the filter part of the + QueryDefinition::Command, you would set it via + XSingleSelectQueryAnalyzer::setQuery(), and retrieve the filter + part via XSingleSelectQueryAnalyzer::getFilter().</p> + + <p>If you'd be interested in the composed filter, you would set the + QueryDefinition::Command as #ElementaryQuery, add your + filter, and propagate the resulting query (XSingleSelectQueryAnalyzer::getQuery()) + to an SingleSelectQueryAnalyzer instance via + XSingleSelectQueryAnalyzer::setQuery().</p> + */ + [attribute] string ElementaryQuery + { + set raises (com::sun::star::sdbc::SQLException); + }; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XSubDocument.idl b/offapi/com/sun/star/sdb/XSubDocument.idl new file mode 100644 index 000000000..89c072140 --- /dev/null +++ b/offapi/com/sun/star/sdb/XSubDocument.idl @@ -0,0 +1,93 @@ +/* -*- 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_XSubDocument_idl__ +#define __com_sun_star_sdb_XSubDocument_idl__ + +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/lang/XComponent.idl> + + +module com { module sun { module star { module sdb { + + +/** allows operating on a sub document of an OfficeDatabaseDocument + + @since OOo 3.1 + */ +interface XSubDocument +{ + /** opens the sub document + + <p>Note that opening the document means it is displayed in an own top-level frame + on the desktop.</p> + + @return + the sub document, usually a com::sun::star::frame::XModel, + or a com::sun::star::frame::XController if the sub document + does not have an own model. + + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs during opening the document + */ + ::com::sun::star::lang::XComponent + open() + raises( ::com::sun::star::lang::WrappedTargetException ); + + /** opens the sub document in design mode + + @return + the sub document, usually a com::sun::star::frame::XModel, + or a com::sun::star::frame::XController if the sub document + does not have an own model. + + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs during opening the document + */ + ::com::sun::star::lang::XComponent + openDesign() + raises( ::com::sun::star::lang::WrappedTargetException ); + + /** stores the sub document, if it had previously been opened in either mode + + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs during storing the document + */ + void store() + raises( ::com::sun::star::lang::WrappedTargetException ); + + /** closes the sub document, if it had previously been opened in either mode + + @return `TRUE` if and only if the document could be closed, `FALSE` otherwise, + e.g. if the closing has been vetoed by the user. + + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs during closing the document + */ + boolean close() + raises( ::com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/XTextConnectionSettings.idl b/offapi/com/sun/star/sdb/XTextConnectionSettings.idl new file mode 100644 index 000000000..89645ec0f --- /dev/null +++ b/offapi/com/sun/star/sdb/XTextConnectionSettings.idl @@ -0,0 +1,44 @@ +/* -*- 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_XTextConnectionSettings_idl__ +#define __com_sun_star_sdb_XTextConnectionSettings_idl__ + +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { + +/** + @since LibreOffice 4.1 +*/ +interface XTextConnectionSettings { + + interface com::sun::star::ui::dialogs::XExecutableDialog; + + interface com::sun::star::beans::XPropertySet; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/CopyTableContinuation.idl b/offapi/com/sun/star/sdb/application/CopyTableContinuation.idl new file mode 100644 index 000000000..dfc3423c0 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/CopyTableContinuation.idl @@ -0,0 +1,59 @@ +/* -*- 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_application_CopyTableContinuation_idl__ +#define __com_sun_star_sdb_application_CopyTableContinuation_idl__ + + +module com { module sun { module star { module sdb { module application { + + +/** specifies the possible continuations when copying a table row via a + CopyTableWizard failed. + */ +constants CopyTableContinuation +{ + /** indicates the error should be ignored, and copying should be continued. + */ + const short Proceed = 0; + + /** is used to indicate the next registered XCopyTableListener should be + called. + */ + const short CallNextHandler = 1; + + /** cancels the whole copying process + */ + const short Cancel = 2; + + /** asks the user how the handle the error. + + <p>The user can choose between ignoring the error and canceling the copy + operation.</p> + */ + const short AskUser = 3; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/CopyTableOperation.idl b/offapi/com/sun/star/sdb/application/CopyTableOperation.idl new file mode 100644 index 000000000..0a5587439 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/CopyTableOperation.idl @@ -0,0 +1,62 @@ +/* -*- 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_application_CopyTableOperation_idl__ +#define __com_sun_star_sdb_application_CopyTableOperation_idl__ + + +module com { module sun { module star { module sdb { module application { + + +/** specifies the different basic operations a CopyTableWizard + can do. + + @since OOo 2.4 +*/ +constants CopyTableOperation +{ + /** specifies that the wizard should copy the source table to the target database, + by creating a new table and copying all data. + */ + const short CopyDefinitionAndData = 0; + + /** specifies that the wizard should copy the source table to the target database, + by only creating a new table with the same structure as the source table. + */ + const short CopyDefinitionOnly = 1; + + /** specifies the wizard should create the source table as view + + <p>This option is not available if the target database does not support views.</p> + */ + const short CreateAsView = 2; + + /** specifies the wizard should append the source table's data to an existing + table in the target database. + */ + const short AppendData = 3; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/CopyTableRowEvent.idl b/offapi/com/sun/star/sdb/application/CopyTableRowEvent.idl new file mode 100644 index 000000000..b0935ea66 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/CopyTableRowEvent.idl @@ -0,0 +1,57 @@ +/* -*- 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_application_CopyTableRowEvent_idl__ +#define __com_sun_star_sdb_application_CopyTableRowEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> +#include <com/sun/star/sdbc/XResultSet.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** specifies an event happening while copying table data between databases. + + <p>Whenever this event is fired to an XCopyTableListener, + com::sun::star::lang::EventObject::Source contains the + wizard instance which actually does the copying.</p> + + @see CopyTableWizard + */ +struct CopyTableRowEvent : ::com::sun::star::lang::EventObject +{ + /** contains the result set which is being copied by the wizard currently. + */ + ::com::sun::star::sdbc::XResultSet SourceData; + + /** denotes the error which happened while copying the data. + + <p>Usually, this contains an instance of com::sun::star::sdbc::SQLException.</p> + */ + any Error; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/CopyTableWizard.idl b/offapi/com/sun/star/sdb/application/CopyTableWizard.idl new file mode 100644 index 000000000..eb7e4b689 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/CopyTableWizard.idl @@ -0,0 +1,219 @@ +/* -*- 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_application_CopyTableWizard_idl__ +#define __com_sun_star_sdb_application_CopyTableWizard_idl__ + +#include <com/sun/star/sdb/application/XCopyTableWizard.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/task/XInteractionHandler.idl> +#include <com/sun/star/sdbc/SQLException.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** describes a wizard which can be used to copy table like data from one + database to another. + + <dl> + <dt><b><a name="interaction"></a>Interactions</b></dt> + <dd> + <p>There are various cases where the wizard needs to interact with the user (except of + course the obvious case to display and operate the wizard dialog itself). For those cases, + an interaction handler is needed, which is used for + <ul> + <li>fulfilling parameter requests. This might become necessary if the copy source + describes a parametrized query.</li> + <li>user interaction in case copying a row fails. If no copy table listener is + registered at the wizard, or none of the registered listener handles an error during + copying a row, or a registered listeners explicitly tells the wizard to ask the user + how to handle the error, then the interaction handler is used together with the + error (an <code>SQLException</code>, usually) that happened.</li> + <li>displaying other errors which happen during copying, in particular errors in + creating the target table or view.</li> + </ul></p> + + <p>When you do not specify an interaction handler by using the + createWithInteractionHandler() constructor, the wizard will use the interaction + handler associated with the copy target, i.e. the interaction handler specified when loading + the document which the copy target refers to. If the copy target cannot be associated with + a database document (e.g. because it is a mere <code>ConnectionResource</code>, or a connection + not obtained from a data source), or if the copy target's database document cannot provide + an interaction handler, a newly-created instance of an interaction handler is used.</p> + + <p>There's one exception to the above, however: Upon creating the copy table wizard, + the copy source and the copy target descriptors are used to create a Connection. For any + interaction during this phase - including, for instance, necessary authentication -, the + interaction handler of the respective data source is used, no matter what you specified + in createWithInteractionHandler(). Only if there is no such interaction + handler, the processing described above, to find another handler, is applied.</p> + </dd> + </dl> + + @see ::com::sun::star::sdb::ParametersRequest + @see XCopyTableWizard::addCopyTableListener + @see CopyTableContinuation + @see ::com::sun::star::document::MediaDescriptor::InteractionHandler + @see ::com::sun::star::sdb::DatabaseDocument + @see ::com::sun::star::sdb::DataSource + @see ::com::sun::star::sdb::DataAccessDescriptor::ConnectionResource + @see ::com::sun::star::sdb::InteractionHandler + + @since OOo 2.4 + */ +service CopyTableWizard : XCopyTableWizard +{ + /** creates an executable wizard dialog, which is to guide the user through copying + a table from one database to another. + + <p>At creation time, an attempt will be made to obtain the connections described + by Source resp. Dest. Failing to do so will result in an + exception.</p> + + <p>If the connection has been newly created by the wizard (e.g. because the + data access descriptor specified a <code>DataSource</code> instead of an <code>ActiveConnection</code>), + then this connection will be disposed upon disposal of the wizard.</p> + + @param Source + the com::sun::star::sdb::DataAccessDescriptor describing the + data to copy. + + <p>The following members of the <code>DataAccessDescriptor</code> are supported, and evaluated + in the given order: + <ol><li><code>ActiveConnection</code></li> + <li><code>DataSourceName</code></li> + <li><code>DatabaseLocation</code></li> + <li><code>ConnectionResource</code></li> + <li><code>ConnectionInfo</code></li> + <li><code>Command</code></li> + <li><code>CommandType</code></li> + </ol> + The first 5 items are used to obtain the connection, the last two to determine which + of the connection's objects is to be copied. Note that <code>Command</code> and <code>CommandType</code> + are required.</p> + + <p>Additionally to the obvious restrictions (such as that creating a view is not possible + if the copy source and the copy destination denote different databases), the following restrictions + apply to the settings, and possible combinations: + <ul><li>Only com::sun::star::sdb::CommandType::TABLE and + com::sun::star::sdb::CommandType::QUERY are supported.</li> + + <li>If you specify a <code>ConnectionResource</code>, or an + <code>ActiveConnection</code> which implements a com::sun::star::sdbc::Connection only + (as opposed to a com::sun::star::sdb::Connection), then the resulting connection is + not able to provide queries, thus a command type <code>QUERY</code> will be rejected.</li> + + <li><code>Filter</code>, <code>Order</code>, <code>HavingClause</code> and <code>GroupBy</code> + are unsupported at the moment.</li> + </ul> + Violating any of the above restrictions will result in an error at creation time.</p> + + @param Destination + the com::sun::star::sdb::DataAccessDescriptor describing the + target for the copy operation. + + <p>Only <code>DataSourceName</code>, <code>DatabaseLocation</code>, <code>ActiveConnection</code> + are supported, effectively describing the target connection to copy the data to. They're evaluated + in the order mentioned here, so if multiple of the are present, only the first one is evaluated.</p> + + <p>Also, at the moment the connection which is implied by either of the settings above + must support the com::sun::star::sdb::Connection service. In particular, + it is not sufficient to pass an SDBC-level connection.</p> + + <p>Note that creating a view (see CopyTableOperation::CreateAsView) is + not supported if the target connection is an SDBC-level connection only.</p> + + @throws ::com::sun::star::lang::IllegalArgumentException + if + <ul><li>either <code>Source</code> or <code>Destination</code> is `NULL`</li> + <li>either <code>Source</code> or <code>Destination</code> are not sufficient + to describe a database connection.</li> + <li><code>Source</code> is not sufficient to describe the to-be-copied data</li> + <li>either <code>Source</code> or <code>Destination</code> contain unsupported settings.</li> + </ul> + + @throws ::com::sun::star::sdbc::SQLException + if an error occurs during obtaining the source or destination connection. Those errors + are passed unchanged to the creator of the wizard. + + @throws ::com::sun::star::lang::WrappedTargetException + if an error other than the ones mentioned above occurs while extracting the necessary + information from any of the data access descriptors. For instance, this might + be a com::sun::star::sdbc::SQLException thrown upon connecting + to a data source described by the descriptor's <code>DataSourceName</code> member. + + @see ::com::sun::star::sdb::DataAccessDescriptor + */ + create( + [in] ::com::sun::star::beans::XPropertySet Source, + [in] ::com::sun::star::beans::XPropertySet Destination + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::sdbc::SQLException + , ::com::sun::star::lang::WrappedTargetException + ); + + /** creates an executable wizard dialog, which is to guide the user through copying + a table from one database to another. + + <p>The only difference to the create() constructor is that + <code>createWithInteractionHandler</code> takes an additional argument, which + can be used to intercept interactions (such as error messages) during the wizard + run.</p> + + @param Source + the com::sun::star::sdb::DataAccessDescriptor describing the + source for the copy operation. + + @param Destination + the com::sun::star::sdb::DataAccessDescriptor describing the + target for the copy operation. + + @param InteractionHandler + specifies an interaction handler to use when user input is required. + + <p>When specifying this parameter, you should use an implementation + supporting the com::sun::star::sdb::InteractionHandler, since + the general-purpose com::sun::star::task::InteractionHandler cannot + handle all requests described <a href="#interaction">above</a>.</p> + + @see ::com::sun::star::sdb::InteractionHandler + */ + createWithInteractionHandler( + [in] ::com::sun::star::beans::XPropertySet Source, + [in] ::com::sun::star::beans::XPropertySet Destination, + [in] ::com::sun::star::task::XInteractionHandler InteractionHandler + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + , ::com::sun::star::sdbc::SQLException + , ::com::sun::star::lang::WrappedTargetException + ); + +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/DatabaseObject.idl b/offapi/com/sun/star/sdb/application/DatabaseObject.idl new file mode 100644 index 000000000..366be5002 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/DatabaseObject.idl @@ -0,0 +1,64 @@ +/* -*- 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_application_DatabaseObject_idl__ +#define __com_sun_star_sdb_application_DatabaseObject_idl__ + +#include <com/sun/star/sdb/CommandType.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** denotes different objects within a database document + + @since OOo 2.2 + + @see DatabaseObjectContainer + */ +constants DatabaseObject +{ + /** denotes a table in a database + + <p>Note that <em>table</em> here is a more general term. In OpenOffice.org Base, + views are also represented as tables, since to the user, the behave pretty much + as tables do.</p> + */ + const long TABLE = com::sun::star::sdb::CommandType::TABLE; + + /** denotes a query in a database document + */ + const long QUERY = com::sun::star::sdb::CommandType::QUERY; + + /** denotes a form in a database document + */ + const long FORM = 2; + + /** denotes a report in a database document + */ + const long REPORT = 3; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/DatabaseObjectContainer.idl b/offapi/com/sun/star/sdb/application/DatabaseObjectContainer.idl new file mode 100644 index 000000000..a4e714cdc --- /dev/null +++ b/offapi/com/sun/star/sdb/application/DatabaseObjectContainer.idl @@ -0,0 +1,95 @@ +/* -*- 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_application_DatabaseObjectContainer_idl__ +#define __com_sun_star_sdb_application_DatabaseObjectContainer_idl__ + + +module com { module sun { module star { module sdb { module application { + + +/** denotes different types of (maybe virtual) containers of database objects + + <p>In the database application of OpenOffice.org, database objects (such as + tables, queries, forms, reports) can be organized in folders. This hierarchy can + be imposed externally, or internally. + + <p>For example, when you connect to a database which supports catalogs and/or schemas, + then those impose a natural order on the tables, in that a catalog or a schema + is a folder of tables.</p> + + <p>On the other hand, for forms and reports, OpenOffice.org Base itself allows the + user to create folders to organize the documents - in this case, the hierarchy is + defined in the database document itself.</p> + + @see DatabaseObject + + @since OOo 3.0 + */ +constants DatabaseObjectContainer +{ + /** denotes the virtual folder containing all tables of a database, in a context where such a + folder is displayed to the user. + */ + const long TABLES = 1000; + + /** denotes the virtual folder containing all queries of a database, in a context where such a + folder is displayed to the user. + */ + const long QUERIES = 1001; + + /** denotes the virtual folder containing all forms of a database document, in a context where such a + folder is displayed to the user. + */ + const long FORMS = 1002; + + /** denotes the virtual folder containing all reports of a database, in a context where such a + folder is displayed to the user. + */ + const long REPORTS = 1003; + + /** denotes the data source itself, which effectively is the root container for all other + kind of database objects, including other container types. + */ + const long DATA_SOURCE = 1004; + + /** denotes a catalog in a database which supports catalogs + */ + const long CATALOG = 1005; + + /** denotes a schema in a database which supports schemas + */ + const long SCHEMA = 1006; + + /** denotes a folder which is used to organize forms in a database document + */ + const long FORMS_FOLDER = 1007; + + /** denotes a folder which is used to organize reports in a database document + */ + const long REPORTS_FOLDER = 1008; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/DefaultViewController.idl b/offapi/com/sun/star/sdb/application/DefaultViewController.idl new file mode 100644 index 000000000..c41879e57 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/DefaultViewController.idl @@ -0,0 +1,92 @@ +/* -*- 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_application_DefaultViewController_idl__ +#define __com_sun_star_sdb_application_DefaultViewController_idl__ + +#include <com/sun/star/frame/Controller.idl> +#include <com/sun/star/ui/XContextMenuInterception.idl> +#include <com/sun/star/awt/XUserInputInterception.idl> +#include <com/sun/star/view/XSelectionSupplier.idl> +#include <com/sun/star/frame/XTitle.idl> +#include <com/sun/star/frame/XTitleChangeBroadcaster.idl> +#include <com/sun/star/sdb/application/XDatabaseDocumentUI.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** is the default controller implementation for OpenOffice.org's database application. + */ +service DefaultViewController +{ + /** defines basic controller functionality + */ + service ::com::sun::star::frame::Controller; + + /** allows intercepting context menu requests done by the user + + <p>The ::com::sun::star::ui::ContextMenuExecuteEvent::Selection member + of the event passed to an interceptor will <em>not</em> be the controller itself + (though the controller also supports the <a href="#XSelectionSupplier"><code>XSelectionSupplier</code></a> + interface), but a component which describes the current selection of the very window where the context + menu was requested.</p> + + <p>In OpenOffice.org's database application, database objects such as tables, queries, forms, + reports are displayed in a tree-like fashion. Currently, only context menu requests on this tree view + can be intercepted using the <code>XContextMenuInterception</code> interface. Context menu requests + in other places cannot be intercepted.</p> + + <p>For the aforementioned tree view, the selection supplied by the <code>ContextMenuEvent::Selection</code> + component is an array of NamedDatabaseObject instances.</p> + */ + interface ::com::sun::star::ui::XContextMenuInterception; + + /** allows intercepting user input done by the user + */ + interface ::com::sun::star::awt::XUserInputInterception; + + /** <a name="XSelectionSupplier"></a> + provides access to the current selection inside the application window, and allows to change it + programmatically + + <p>The selection is an array of NamedDatabaseObject instances.</p> + */ + interface ::com::sun::star::view::XSelectionSupplier; + + /** allows to retrieve and set the title which of the component + */ + interface ::com::sun::star::frame::XTitle; + + /** allows being notified about changes in the component's title + */ + interface ::com::sun::star::frame::XTitleChangeBroadcaster; + + /** allows programmatic access to aspects of the application's user interface. + */ + interface XDatabaseDocumentUI; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/NamedDatabaseObject.idl b/offapi/com/sun/star/sdb/application/NamedDatabaseObject.idl new file mode 100644 index 000000000..99f239596 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/NamedDatabaseObject.idl @@ -0,0 +1,78 @@ +/* -*- 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_application_NamedDatabaseObject_idl__ +#define __com_sun_star_sdb_application_NamedDatabaseObject_idl__ + + +module com { module sun { module star { module sdb { module application { + + +/** denotes a named database object, or a named folder of database objects + + @since OOo 3.0 +*/ +struct NamedDatabaseObject +{ + /** denotes the type of the object. + + <p>This member is one of the DatabaseObject or DatabaseObjectContainer constants.</p> + */ + long Type; + + /** denotes the name of the object + + <p>In case of forms, reports, form folders and report folders, this is the hierarchical + path to the object, where the path elements are separated by a slash (<code>/</code>).</p> + + <p>In case of tables, this is the fully qualified name of the table, as required + by the database's table name composition rules.</p> + + <p>In case of queries, this is the name of the query.</p> + + <p>In case of virtual folders denoted by DatabaseObjectContainer::CATALOG and + DatabaseObjectContainer::SCHEMA, it is + <ul><li><code><schema></code>, if the database supports schemas only</li> + <li><code><catalog></code>, if the database supports catalogs only</li> + <li><code><catalog>.<schema></code>, if the database supports both + catalogs and schemas, and catalogs are to appear at the beginning of an identifier.</li> + <li><code><schema>.<catalog></code>, if the database supports both + catalogs and schemas, and catalogs are to appear at the end of an identifier.</li> + </ul> + </p> + + <p>In case of the virtual folders denoted by DatabaseObjectContainer::TABLES, + DatabaseObjectContainer::QUERIES, DatabaseObjectContainer::DATA_SOURCE, + DatabaseObjectContainer::FORMS or DatabaseObjectContainer::REPORTS, + this denotes the name of the data source (as denoted by + com::sun::star::sdb::DataSource::Name)</p> + + @see XDatabaseMetaData::isCatalogAtStart + @see DatabaseObjectContainer + */ + string Name; +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/XCopyTableListener.idl b/offapi/com/sun/star/sdb/application/XCopyTableListener.idl new file mode 100644 index 000000000..72613157e --- /dev/null +++ b/offapi/com/sun/star/sdb/application/XCopyTableListener.idl @@ -0,0 +1,84 @@ +/* -*- 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_application_XCopyTableListener_idl__ +#define __com_sun_star_sdb_application_XCopyTableListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/sdb/application/CopyTableRowEvent.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** specifies the interface required to listen for progress in copying + table rows via a <code>CopyTableWizard</code>. + + @see CopyTableRowEvent + @see CopyTableWizard + */ +interface XCopyTableListener : ::com::sun::star::lang::XEventListener +{ + /** is called when a row is about to be copied. + + <p>This method is called immediately before a row is copied. It might be used, for instance, + to update a progress indicator.</p> + + @param Event + describes the current state of the copy operation. + CopyTableRowEvent::SourceData is positioned at the row + which is about to be copied. + */ + void copyingRow( [in] CopyTableRowEvent Event ); + + /** is called when a row was successfully copied. + + <p>This method is called right after a row has been successfully copied. It might be used, + for instance, to update a progress indicator.</p> + + @param Event + describes the current state of the copy operation. + CopyTableRowEvent::SourceData is positioned at the row + which was just copied to the target database. + */ + void copiedRow( [in] CopyTableRowEvent Event ); + + /** is called when copying a row failed. + + @param Event + describes the current state of the copy operation. + CopyTableRowEvent::SourceData is positioned at the row + which was attempted to be copied to the target database. + CopyTableRowEvent::Error will contain the actual error which + happened. + + @return + how to continue with copying. Must be one of the CopyTableContinuation + constants. + */ + short copyRowError( [in] CopyTableRowEvent Event ); +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/XCopyTableWizard.idl b/offapi/com/sun/star/sdb/application/XCopyTableWizard.idl new file mode 100644 index 000000000..18b312f4f --- /dev/null +++ b/offapi/com/sun/star/sdb/application/XCopyTableWizard.idl @@ -0,0 +1,138 @@ +/* -*- 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_application_XCopyTableWizard_idl__ +#define __com_sun_star_sdb_application_XCopyTableWizard_idl__ + +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/beans/Optional.idl> + +module com { module sun { module star { module sdb { module application { + +interface XCopyTableListener; + + +/** describes a wizard which can be used to copy table like data from one + database to another. + + <p>Copying table data between databases can be a complex task. Especially when + it comes to matching field types in the source and in the target database, + some heuristics, and sometimes support from the user doing the operation, + are required.</p> + + <p>The <code>copy table wizard</code> described by this interfaces cares for those, + and other, settings.</p> + + @since OOo 2.4 + */ +interface XCopyTableWizard : ::com::sun::star::ui::dialogs::XExecutableDialog +{ + /** specifies the basic operation for the wizard to execute. + + <p>This must be one of the CopyTableOperation constants.</p> + + <p>At initialization time, you can use this attribute to control the + initial operation in the wizard.</p> + + <p>After the wizard has finished, you can use this attribute to determine + what operation was actually executed.</p> + + <p>Changing this attribute while the dialog is running is not supported, the + result of such an attempt is undefined.</p> + + @throws IllegalArgumentException + if you attempt to set an invalid operation, or if the given operation is + not supported by the target database type, e.g. if you specified + CopyTableOperation::CreateAsView where the database + does not support views. + */ + [attribute] short Operation + { + set raises ( ::com::sun::star::lang::IllegalArgumentException ); + }; + + /** specifies the name of the table in the destination database. + + <p>At initialization time, you can use this attribute to control the + initial table name as suggested to the user.</p> + + <p>After the wizard has finished, you can use this attribute to determine + what table was actually created resp. to which existing table the source + table's data was appended.</p> + + <p>Changing this attribute while the dialog is running is not supported, the + result of such an attempt is undefined.</p> + */ + [attribute] string DestinationTableName; + + /** specifies that a new primary key is to be created in the target database + + <p>At initialization time, you can specify the initial settings for the primary + key in the UI.</p> + + <p>You cannot use this attribute to determine the primary key, possibly created + by the wizard, after it finished. The reason is that during the wizard run, the + user can define an arbitrarily complex primary key, e.g. including multiple columns, + which cannot be represented in this simple attribute anymore.</p> + + <p>This attribute is ignored if #Operation is + CopyTableOperation::AppendData.</p> + + <p>Changing this attribute while the dialog is running is not supported, the + result of such an attempt is undefined.</p> + + <p>When a primary key is to be created by the wizard, it will be an auto-increment + column, if possible.</p> + + @throws ::com::sun::star::lang::IllegalArgumentException + if the target database does not support primary keys + */ + [attribute] ::com::sun::star::beans::Optional< string > + CreatePrimaryKey + { + set raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::sdbc::SQLException ); + }; + + /** specifies that the first row should be used to identify column names. + + <p>This attribute is ignored when the source defines the column names which isn't the case when only a part of a table should be copied + e.g. in the RTF format or in the HTML format. + </p> + */ + [attribute] boolean UseHeaderLineAsColumnNames; + + /** adds a listener which is to be notified of progress in the copy operation + */ + void addCopyTableListener( [in] XCopyTableListener Listener ); + + /** removes a listener + */ + void removeCopyTableListener( [in] XCopyTableListener Listener ); +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl new file mode 100644 index 000000000..a8f54d4f7 --- /dev/null +++ b/offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl @@ -0,0 +1,322 @@ +/* -*- 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_application_XDatabaseDocumentUI_idl__ +#define __com_sun_star_sdb_application_XDatabaseDocumentUI_idl__ + +#include <com/sun/star/sdbc/XDataSource.idl> +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdbc/XConnection.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/beans/Pair.idl> + + +module com { module sun { module star { module sdb { module application { + + +/** provides access to the user interface of a database document + + <p>This interface is available when a database document has been loaded into + a frame, at the controller of this frame.</p> + + @see com::sun::star::frame::Controller + @see com::sun::star::sdb::DatabaseDocument + + @since OOo 2.2 + */ +interface XDatabaseDocumentUI +{ + /** provides access to the data source belong to the database document + */ + [attribute, readonly] com::sun::star::sdbc::XDataSource DataSource; + + /** provides access to the application's main window + + <p>Note that reading this attribute is equivalent to querying the component + for the com::sun::star::frame::XController interface, + asking the controller for its frame, and asking this frame for its + container window.</p> + + @see ::com::sun::star::frame::XController + @see ::com::sun::star::frame::XFrame + */ + [attribute, readonly] com::sun::star::awt::XWindow ApplicationMainWindow; + + /** provides access to the current connection of the application + + <p>Note that the connection returned here is really the working connection + of the application. Clients should not misuse it, in particular, closing + the connection can yield unexpected results and should definitely be + avoided. If you need a separate connection to the data source, use + com::sun::star::sdbc::XDataSource::getConnection().</p> + */ + [attribute, readonly] com::sun::star::sdbc::XConnection ActiveConnection; + + /** determines whether the application is currently connected to the database + */ + boolean isConnected(); + + /** lets the application connect to the database + + <p>If the application is already connected, nothing happens. If it is not + connected, the application will try to establish a connection by using + com::sun::star::sdbc::XDataSource::getConnection() + with the current settings, as specified in the + com::sun::star::sdb::DataSource::Settings member.</p> + + <p>If the connection cannot be established, the respective error message is shown + in the application window.</p> + + @throws ::com::sun::star::sdbc::SQLException + if the connection cannot be established + */ + void connect() + raises ( ::com::sun::star::sdbc::SQLException ); + + /** contains all sub components of the database document + + <p>During working with the database, the user might open different sub components: + forms, reports, tables, queries. Those components are tracked by the application, + and provided in this attribute.</p> + + <p>The components here might either be documents (com::sun::star::frame::XModel), + controllers (com::sun::star::frame::XController), or frames + (com::sun::star::frame::XFrame). + + @since OOo 3.0 + */ + [attribute, readonly] sequence< ::com::sun::star::lang::XComponent > + SubComponents; + + /** identifies the given sub component + + @param SubComponent + the component to identify. Must be one of the components in #SubComponents. + + @return + a record describing the sub component. The first element of the returned pair is the type + of the component, denoted by one of the DatabaseObject constants. The second + element is the name of the component. For object types which support nested structures (forms + and reports, actually), this might be a hierarchical name. If the sub component has been newly created, + and not yet saved, this name is empty. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given component is not one of the controller's sub components + */ + ::com::sun::star::beans::Pair< long, string > + identifySubComponent( + [in] ::com::sun::star::lang::XComponent SubComponent + ) + raises ( + ::com::sun::star::lang::IllegalArgumentException + ); + + /** closes all sub components of the database document. + + <p>During working with the database, the user might open different sub components: + forms, reports, tables, queries. If you need to close all those documents, use + <code>closeSubComponents</code>, which will gracefully do this.</p> + + <p>In a first step, the sub components will be suspended + (com::sun::star::frame::XController::suspend()). There + are basically two reasons why suspending a single sub component can fail: The + user might veto it (she's asked if the document is currently modified), and + the component might be uncloseable currently, e.g. due to an open modal + dialog, or a long-lasting operation running currently (e.g. printing).</p> + + <p>Once all sub components have been suspended, they will, in a second step, + be closed. Again, closing might be vetoed by other instances, e.g. by a close + listener registered at the component.</p> + + @return + `TRUE` if and only if both suspending and closing all sub components succeeds. + + @since OOo 3.0 + */ + boolean closeSubComponents(); + + /** loads the given sub component of the database document + + <p>This method allows programmatic access to the functionality which is present in the UI: + it allows opening a table, query, form, or report for either editing or viewing.</p> + + <p>This method is a convenience wrapper for API which is also available otherwise. For instance, + for loading forms and reports, you could use the com::sun::star::frame::XComponentLoader + interface of the ::com::sun::star::sdb::Forms resp. ::com::sun::star::sdb::Reports + collections.</p> + + <p>Note there must exist a connection to the database before you can call this method.</p> + + <p>If an error occurs opening the given object, then this is reported to the user via an error dialog.</p> + + @see isConnected + @see connect + + @param ObjectType + specifies the type of the object, must be one of the DatabaseObject + constants. + + @param ObjectName + specifies the name of the object. In case hierarchical objects are supported + (as is the case form forms and reports), hierarchical names are supported here, too. + + @param ForEditing + specifies whether the object should be opened for editing (`TRUE`) or viewing (`FALSE`). + + <p>For the different object types, this means the following + <a name="component_types"></a> + <table style="width:100%;" border="1 solid black" cellpadding="2" cellspacing="2"> + <tr style="vertical-align: top;"> + <td></td> + <td><code>ForEditing</code> = `TRUE`</td> + <td><code>ForEditing</code> = `FALSE`</td> + </tr> + + <tr style="vertical-align: top;"> + <td><em>Tables</em></td> + <td>A table designer is opened, and allows to edit the structure of the table. + See also ::com::sun::star::sdb::TableDesign</td> + <td>A table data view is opened, and allows to view and edit the data contained in the table. + See also ::com::sun::star::sdb::DataSourceBrowser</td> + </tr> + + <tr style="vertical-align: top;"> + <td><em>Queries</em></td> + <td>A query designer is opened, and allows to edit the statement constituting the query. + See also ::com::sun::star::sdb::QueryDesign</td> + <td>A table data view is opened, and allows to view and edit the data contained in the query. + See also ::com::sun::star::sdb::DataSourceBrowser</td> + </tr> + + <tr style="vertical-align: top;"> + <td><em>Forms</em></td> + <td>The form document is opened in design mode, that is, you can modify it.</td> + <td>The form document is opened in read-only mode, allowing you to view and enter the data + which the form is based on, but not the form design.</td> + </tr> + + <tr style="vertical-align: top;"> + <td><em>Reports</em></td> + <td>The report document is opened in design mode, that is, you can modify it.</td> + <td>The report is executed, and the results will be displayed.</td> + </tr> + + </table> + </p> + + @return + the component which has been loaded. This is either a com::sun::star::frame::XModel, + or a com::sun::star::frame::XController if the component does is model-less. + + @throws ::com::sun::star::lang::IllegalArgumentException + if ObjectType denotes an invalid object type + + @throws ::com::sun::star::container::NoSuchElementException + if an object with the given name and of the given type does not exist + + @throws ::com::sun::star::sdbc::SQLException + if there is no connection to the database at the time the method is called. + */ + ::com::sun::star::lang::XComponent loadComponent( + [in] long ObjectType, + [in] string ObjectName, + [in] boolean ForEditing ) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::sdbc::SQLException ); + + /** loads the given sub component of the database document + + <p>In opposite to loadComponent(), this method allows you to specify + additional arguments which are passed to the to-be-loaded component.</p> + + <p>The meaning of the arguments is defined at the service which is effectively + created. See the <a href="#component_types">above table</a> for a list of those + services.</p> + */ + ::com::sun::star::lang::XComponent loadComponentWithArguments( + [in] long ObjectType, + [in] string ObjectName, + [in] boolean ForEditing, + [in] sequence< ::com::sun::star::beans::PropertyValue > Arguments ) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::sdbc::SQLException ); + + /** creates a new sub component of the given type + + @param ObjectType + specifies the type of the object, must be one of the DatabaseObject + constants. + + @param DocumentDefinition + Upon successful return, and if and only if ObjectType equals DatabaseObject::FORM + or DatabaseObject::REPORT, this will contain the com::sun::star::sdb::DocumentDefinition + object which controls the sub component. + */ + ::com::sun::star::lang::XComponent createComponent( + [in] long ObjectType, + [out] ::com::sun::star::lang::XComponent DocumentDefinition ) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::sdbc::SQLException ); + + /** creates a new sub component of the given type + + <p>In opposite to createComponent(), this method allows you to specify + additional arguments which are passed to the to-be-loaded component.</p> + + + @param ObjectType + specifies the type of the object, must be one of the DatabaseObject + constants. + + @param Arguments + The meaning of the arguments is defined at the service which is + effectively created. See the <a href="#component_types">above + table</a> for a list of those services. + + @param DocumentDefinition + Upon successful return, and if and only if ObjectType equals DatabaseObject::FORM + or DatabaseObject::REPORT, this will contain the com::sun::star::sdb::DocumentDefinition + object which controls the sub component.<br/> + You can use this object to control various aspects of the sub component. For instance, you could decide + to create the component hidden, by passing a <code>Hidden</code> flag (set to `TRUE`) in Arguments, + manipulate the component, and then finally show it by invoking the <code>show</code> command at the + definition object. + */ + ::com::sun::star::lang::XComponent createComponentWithArguments( + [in] long ObjectType, + [in] sequence< ::com::sun::star::beans::PropertyValue > Arguments, + [out] ::com::sun::star::lang::XComponent DocumentDefinition ) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::sdbc::SQLException ); +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/application/XTableUIProvider.idl b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl new file mode 100644 index 000000000..e9bb5b53e --- /dev/null +++ b/offapi/com/sun/star/sdb/application/XTableUIProvider.idl @@ -0,0 +1,112 @@ +/* -*- 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_application_XTableUIProvider_idl__ +#define __com_sun_star_sdb_application_XTableUIProvider_idl__ + +#include <com/sun/star/graphic/XGraphic.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> + + +module com { module sun { module star { module sdb { module application { + +interface XDatabaseDocumentUI; + + +/** is used by the database application to obtain non-default user + interface information and/or components for database tables. + + @see com::sun::star::sdb::Connection + + @since OOo 2.2 + */ +interface XTableUIProvider +{ + /** provides the icon which should be used to represent the table in the + database application window. + + <p>The icon will usually be requested once per table, and cached. It + might be requested again if the application settings change, for instance, + if another desktop theme has been activated.</p> + + @param TableName + denotes the fully qualified name of the database table. + + @param ColorMode + denotes the color mode of the graphic to retrieve, being one of the + com::sun::star::graphic::GraphicColorMode constants. + @return + the icon which should be used to represent the table in the + database application window, or `NULL` if the default icon + should be used. + */ + com::sun::star::graphic::XGraphic getTableIcon( + [in] string TableName, [in] long ColorMode ); + + /** returns a component which can be used to edit the definition of an + existing table. + + @param DocumentUI + provides access to the UI in which the database document is + currently displayed.<br/> + In particular, this parameter provides access to the application's main + window, which is needed in case the table editor should be a dialog. + + @param TableName + denotes the fully qualified name of an existing table. + + @return + a component which can be used to edit the definition of an + existing table, or `NULL` if the default component should + be used.<br/> + Two component types are supported so far + <ul><li>modal dialogs<br/> + If the returned component supports the + com::sun::star::ui::dialogs::XExecutableDialog + interface, the dialog will be executed modally.</li> + <li>modeless frames<br/> + If the returned component supports the + com::sun::star::frame::XController + interface, it is assumed that it represents a controller, + loaded into a new frame, which is a modeless and, in its lifetime, + depends on the application main window.</li> + </ul> + If the returned component does not support any of the above-mentioned + interfaces, it's discarded. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the given TableName does not denote an existing table + + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs while creating the table editor component. + */ + com::sun::star::uno::XInterface getTableEditor( + [in] XDatabaseDocumentUI DocumentUI, + [in] string TableName ) + raises (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException); +}; + + +}; }; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/CompositionType.idl b/offapi/com/sun/star/sdb/tools/CompositionType.idl new file mode 100644 index 000000000..868bfd064 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/CompositionType.idl @@ -0,0 +1,79 @@ +/* -*- 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_tools_CompositionType_idl__ +#define __com_sun_star_sdb_tools_CompositionType_idl__ + +module com { module sun { module star { module sdb { module tools { + +/** specifies which composition should be used when composing a table + name. + + @see XTableName + + @since OOo 2.0.4 +*/ +constants CompositionType +{ + /** specifies composition of a name to be used in table definitions + + @see XDatabaseMetaData::supportsCatalogsInTableDefinitions + @see XDatabaseMetaData::supportsSchemasInTableDefinitions + */ + const long ForTableDefinitions = 0; + + /** specifies composition of a name to be used in index definitions + + @see XDatabaseMetaData::supportsCatalogsInIndexDefinitions + @see XDatabaseMetaData::supportsSchemasInIndexDefinitions + */ + const long ForIndexDefinitions = 1; + + /** specifies composition of a name to be used in data manipulation + + @see XDatabaseMetaData::supportsCatalogsInDataManipulation + @see XDatabaseMetaData::supportsSchemasInDataManipulation + */ + const long ForDataManipulation = 2; + + /** specifies composition of a name to be used in procedure calls + + @see XDatabaseMetaData::supportsCatalogsInProcedureCalls + @see XDatabaseMetaData::supportsSchemasInProcedureCalls + */ + const long ForProcedureCalls = 3; + + /** specifies composition of a name to be used in privilege definitions + + @see XDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions + @see XDatabaseMetaData::supportsSchemasInPrivilegeDefinitions + */ + const long ForPrivilegeDefinitions = 4; + + /** specifies complete composition of a table name, including catalog and schema (if present), + disregarding any database support for catalog and schema in any particular statements + */ + const long Complete = 5; +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/ConnectionTools.idl b/offapi/com/sun/star/sdb/tools/ConnectionTools.idl new file mode 100644 index 000000000..3fc03a133 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/ConnectionTools.idl @@ -0,0 +1,43 @@ +/* -*- 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_tools_ConnectionTools_idl__ +#define __com_sun_star_sdb_tools_ConnectionTools_idl__ + +#include <com/sun/star/sdb/tools/XConnectionTools.idl> + +module com { module sun { module star { module sdbc { + published interface XConnection; +};};};}; + +module com { module sun { module star { module sdb { module tools { + +/** + @since LibreOffice 4.1 +*/ +service ConnectionTools : XConnectionTools +{ + createWithConnection([in] com::sun::star::sdbc::XConnection Connection); +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XConnectionSupplier.idl b/offapi/com/sun/star/sdb/tools/XConnectionSupplier.idl new file mode 100644 index 000000000..8e54488d9 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XConnectionSupplier.idl @@ -0,0 +1,48 @@ +/* -*- 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_tools_XConnectionSupplier_idl__ +#define __com_sun_star_sdb_tools_XConnectionSupplier_idl__ + +#include <com/sun/star/sdbc/XConnection.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to access the active connection + + @see com::sun::star::sdbcx::XConnection + + @since OOo 3.3 +*/ +interface XConnectionSupplier +{ + /** returns the source connection. + */ + [attribute, readonly] com::sun::star::sdbc::XConnection ActiveConnection; + + interface com::sun::star::lang::XInitialization; + +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XConnectionTools.idl b/offapi/com/sun/star/sdb/tools/XConnectionTools.idl new file mode 100644 index 000000000..feb085e6a --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XConnectionTools.idl @@ -0,0 +1,129 @@ +/* -*- 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_tools_XConnectionTools_idl__ +#define __com_sun_star_sdb_tools_XConnectionTools_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/sdbc/SQLException.idl> + +module com { module sun { module star { + module container { + interface XNameAccess; + }; + module lang { + interface XComponent; + }; +};};}; +module com { module sun { module star { module sdb { + interface XSingleSelectQueryComposer; + module tools { + +interface XTableName; +interface XObjectNames; +interface XDataSourceMetaData; + +/** encapsulates various useful functionality around a + com::sun::star::sdb::Connection + + <p>Most of the functionality provided here is meaningful only relative to + a given database connection. For instance, for quoting table names, you need + the meta data instance of the connection. Thus, the entry point for obtaining + a XConnectionTools instance is the + com::sun::star::sdb::Connection service.</p> + + <p>Note that nearly all functionality provided by this interface is also + available by other means, it's only provided here for convenience purposes.</p> + + @since OOo 2.0.4 +*/ +interface XConnectionTools +{ + /** creates an instance supporting the XTableName interface, + which can be used to manipulate table names for various purposes. + + <p>The returned object is guaranteed to not be `NULL`.</p> + */ + XTableName createTableName(); + + /** returns an instance supporting the XObjectNames interface, + which provides access to functionality around table and query names. + + <p>The returned object is guaranteed to not be `NULL`.</p> + */ + XObjectNames getObjectNames(); + + /** provides access to the application-level data source meta data + */ + XDataSourceMetaData + getDataSourceMetaData(); + + /** get fields for a result set given by a "command descriptor" + + <p>A command descriptor here means: + <ul><li>a SDB-level connection (com.sun.star.sdb::Connection</li> + <li>a string specifying the name of an object relative to the connection</li> + <li>a com.sun.star.sdb::CommandType value specifying the type + of the object</li> + </ul> + </p> + + @param commandType + the type of the object + + @param command + the object. This may be a table name, a query name, or an SQL statement, depending on the value + of _nCommandType + + @param keepFieldsAlive + If (and only if) CommandType is CommandType.COMMAND, the fields collection which is returned + by this function here is a temporary object. It is kept alive by another object, which is to be + created temporarily, too. To ensure that the fields you get are valid as long as you need them, + the owner which controls their life time is transferred to this parameter upon return.<br/> + Your fields live as long as this component lives.<br/> + Additionally, you are encouraged to dispose this component as soon as you don't need the fields anymore. + It depends on the connection's implementation if this is necessary, but the is no guarantee, so to + be on the safe side with respect to resource leaks, you should dispose the component. + + @return + the container of the columns (aka fields) of the object + */ + ::com::sun::star::container::XNameAccess getFieldsByCommandDescriptor( [in] long commandType, + [in] string command, + [out] ::com::sun::star::lang::XComponent keepFieldsAlive + ) raises( com::sun::star::sdbc::SQLException ); + + /** get the composer initialized with a command and command type. + @param commandType + the type of the object + + @param command + the object. This may be a table name, a query name, or an SQL statement, depending on the value + of _nCommandType + @return + the composer filled with command and command type. + */ + ::com::sun::star::sdb::XSingleSelectQueryComposer getComposer([in] long commandType,[in] string command); +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XDataSourceMetaData.idl b/offapi/com/sun/star/sdb/tools/XDataSourceMetaData.idl new file mode 100644 index 000000000..eb7f48159 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XDataSourceMetaData.idl @@ -0,0 +1,41 @@ +/* -*- 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_tools_XDataSourceMetaData_idl__ +#define __com_sun_star_sdb_tools_XDataSourceMetaData_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/sdbc/SQLException.idl> + +module com { module sun { module star { module sdb { module tools { + +interface XDataSourceMetaData +{ + /** determines whether the data source supports queries in the <code>FROM</code> + part of a <code>SELECT</code> statement. + */ + boolean supportsQueriesInFrom() raises ( com::sun::star::sdbc::SQLException ); +}; + +}; }; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XIndexAlteration.idl b/offapi/com/sun/star/sdb/tools/XIndexAlteration.idl new file mode 100644 index 000000000..7cd7b240f --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XIndexAlteration.idl @@ -0,0 +1,75 @@ +/* -*- 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_tools_XIndexAlteration_idl__ +#define __com_sun_star_sdb_tools_XIndexAlteration_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/tools/XConnectionSupplier.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to alter the indexes of a table. + + @see com::sun::star::sdb::DataSource::Settings + @see com::sun::star::sdbcx::XAppend + @see com::sun::star::sdbcx::XDrop + + @since OOo 3.3 +*/ +interface XIndexAlteration +{ + interface XConnectionSupplier; + + /** drops an object of the related container identified by its name. + @param table + the table to be altered + @param index + the name of the column to be dropped + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void dropIndex([in] com::sun::star::beans::XPropertySet table,[in] string index) + raises ( com::sun::star::sdbc::SQLException); + + /** creates a new object using the given descriptor and appends it + to the related container. + <b> + Note: + </b> + The descriptor will not be changed and can be used again to append another object. + @param table + the table to be altered + @param descriptor + the descriptor which should be serve to append a new object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void addIndex([in] com::sun::star::beans::XPropertySet table,[in]com::sun::star::beans::XPropertySet descriptor) + raises (com::sun::star::sdbc::SQLException); + + +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XKeyAlteration.idl b/offapi/com/sun/star/sdb/tools/XKeyAlteration.idl new file mode 100644 index 000000000..961ec8c94 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XKeyAlteration.idl @@ -0,0 +1,75 @@ +/* -*- 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_tools_XKeyAlteration_idl__ +#define __com_sun_star_sdb_tools_XKeyAlteration_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/tools/XConnectionSupplier.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to alter the keys of a table. + + @see com::sun::star::sdb::DataSource::Settings + @see com::sun::star::sdbcx::XAppend + @see com::sun::star::sdbcx::XDrop + + @since OOo 3.3 +*/ +interface XKeyAlteration +{ + interface XConnectionSupplier; + + /** drops an object of the related container identified by its name. + @param table + the table to be altered + @param key + the key to be dropped + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void dropKey([in] com::sun::star::beans::XPropertySet table,[in] com::sun::star::beans::XPropertySet key) + raises ( com::sun::star::sdbc::SQLException); + + /** creates a new object using the given descriptor and appends it + to the related container. + <b> + Note: + </b> + The descriptor will not be changed and can be used again to append another object. + @param table + the table to be altered + @param descriptor + the descriptor which should be serve to append a new object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void addKey([in] com::sun::star::beans::XPropertySet table,[in]com::sun::star::beans::XPropertySet descriptor) + raises (com::sun::star::sdbc::SQLException); + + +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XObjectNames.idl b/offapi/com/sun/star/sdb/tools/XObjectNames.idl new file mode 100644 index 000000000..a82bd59a8 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XObjectNames.idl @@ -0,0 +1,164 @@ +/* -*- 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_tools_XObjectNames_idl__ +#define __com_sun_star_sdb_tools_XObjectNames_idl__ + +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/sdbc/SQLException.idl> + +module com { module sun { module star { module sdb { module tools { + +/** encapsulates functionality which you might find useful when writing a + database application which deals with query and table names. + + <p>The most important task fulfilled by this instance is that it hides + different naming restrictions from you, which are caused by server-side + or client side specialties.</p> + + <p>For instance, it can validate names against + the characters allowed in the object names of a connection. Also, it + relieves you from caring whether a database supports queries in a <code>SELECT</code> + statement's <code>FROM</code> part (known as "queries in queries"). In such + databases, query and table names share a common namespace, thus they must be + unique. Using this interface, you can easily ensure this uniqueness.</p> + + <p>All of the functionality present in this interface depends on a connection, + thus it entry point for obtaining it is a com::sun::star::sdb::Connection + service.</p> + + <p>The component itself does not have life-time control mechanisms, i.e. you + cannot explicitly dispose it (com::sun::star::lang::XComponent::dispose()), + and you cannot be notified when it dies.<br/> + However, if your try to access any of its methods or attributes, after the + connection which was used to create it was closed, a com::sun::star::lang::DisposedException + will be thrown.</p> + + @see XConnectionTools + + @since OOo 2.0.4 +*/ +interface XObjectNames +{ + /** suggests a (unique) table or query name + + <p>If in the database, tables and queries share a common namespace, this will be respected + by this function.</p> + + <p>Note that in an multi-threaded environment, the name you obtain here is not absolutely + guaranteed to be unique. It is unique at the very moment the function returns to you. + But already when you evaluate the returned value, it might not be unique anymore, if + another process or thread created a query or table with this name.</p> + + <p>This implies that you cannot rely on the name's uniqueness, but you can use it as + first guess to present to the user. In most cases, it will still be sufficient when + you are actually creating the table respectively query.</p> + + @param CommandType + specifies the com::sun::star::sdb::CommandType of the object for which + a unique name is to be generated. Must be either com::sun::star::sdb::CommandType::TABLE + or com::sun::star::sdb::CommandType::QUERY. + + @param BaseName + specifies the base of the to-be-created object name. If empty, a default + base name will be used. + + @throws com::sun::star::lang::IllegalArgumentException + if CommandType specifies an invalid command type. + */ + string suggestName( [in] long CommandType, [in] string BaseName ) + raises ( com::sun::star::lang::IllegalArgumentException, + com::sun::star::sdbc::SQLException ); + + /** converts the given object name to a name which is valid in the database. + + <p>The conversion takes place by converting every character which is neither + allowed by the SQL-92 standard, nor part of the special characters supported + by the database, with an underscore character (_).</p> + + @see com::sun::star::sdbc::XDatabaseMetaData::getExtraNameCharacters + */ + string convertToSQLName( [in] string Name ); + + /** checks whether a given name is used as table respectively query name in the database. + + <p>If in the database, tables and queries share a common namespace, this will be respected + by this function.</p> + + <p>As before, the information you obtain by calling this method might be obsolete + in the very moment you evaluate this, in case another process or thread interferes. + However, it's usually sufficiently up-to-date for purpose of using it in a database + application driven by user interactions.</p> + + @param CommandType + specifies the com::sun::star::sdb::CommandType of the object whose + name should be checked. Must be either com::sun::star::sdb::CommandType::TABLE + or com::sun::star::sdb::CommandType::QUERY. + + @param Name + specifies the to-be-checked name of the object. + + @return + `TRUE` if and only if the given name is legitimate as table respectively query name + to be used in the database. + + @throws com::sun::star::lang::IllegalArgumentException + if CommandType specifies an invalid command type. + + @see checkNameIsUsed + */ + boolean isNameUsed( [in] long CommandType, [in] string Name ) + raises ( com::sun::star::lang::IllegalArgumentException, + com::sun::star::sdbc::SQLException ); + + /** checks whether a given name is valid as table or query name + + <p>For tables, the name must consist of characters allowed by the SQL-92 standard, + plus characters allowed by the connection as extra name characters.</p> + + <p>For queries, names are nearly arbitrary, except that usual quoting characters + must not be part of the name.</p> + + @see com::sun::star::sdbc::XDatabaseMetaData::getExtraNameCharacters + */ + boolean isNameValid( [in] long CommandType, [in] string Name ) + raises ( com::sun::star::lang::IllegalArgumentException ); + + /** checks whether a given name is allowed for a to-be-created table or query in the + database. + + <p>This method basically does the same checks as isNameUsed() and + isNameValid(). In case the given name is not allowed, it throws an + exception. This error can be presented to the user, to give it a common experience + in all cases where he's required to enter an object name.</p> + + @see isNameUsed + @see isNameValid + @see com::sun::star::sdb::ErrorMessageDialog + @see com::sun::star::sdb::InteractionHandler + */ + void checkNameForCreate( [in] long CommandType, [in] string Name ) + raises ( com::sun::star::sdbc::SQLException ); +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XTableAlteration.idl b/offapi/com/sun/star/sdb/tools/XTableAlteration.idl new file mode 100644 index 000000000..76ea4d5cf --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XTableAlteration.idl @@ -0,0 +1,94 @@ +/* -*- 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_tools_XTableAlteration_idl__ +#define __com_sun_star_sdb_tools_XTableAlteration_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/tools/XConnectionSupplier.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to alter a table. + + @see com::sun::star::sdb::DataSource::Settings + @see com::sun::star::sdbcx::ColumnDescriptor + @see com::sun::star::sdbcx::XAlterTable + @see com::sun::star::sdbcx::XAppend + @see com::sun::star::sdbcx::XDrop + + @since OOo 3.3 +*/ +interface XTableAlteration +{ + interface XConnectionSupplier; + + /** alter the column defined by name + + @param table + the table to be altered + + @param columnName + the name of the column to be changed + + @param columnDescriptor + the column descriptor with the information of the new column definition + + @throws com::sun::star::sdbc::SQLException + @see com::sun::star::sdbcx::XAlterTable + */ + void alterColumnByName( [in] com::sun::star::beans::XPropertySet table, [in] string columnName, [in] com::sun::star::beans::XPropertySet columnDescriptor) + raises ( com::sun::star::sdbc::SQLException ); + + /** creates a new object using the given descriptor and appends it + to the related container. + <b> + Note: + </b> + The descriptor will not be changed and can be used again to append another object. + @param table + the table to be altered + @param descriptor + the descriptor which should be serve to append a new object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + @see com::sun::star::sdbcx::XAppend + */ + void addColumn([in] com::sun::star::beans::XPropertySet table,[in]com::sun::star::beans::XPropertySet descriptor) + raises (com::sun::star::sdbc::SQLException); + + /** drops an object of the related container identified by its name. + @param table + the table to be altered + @param columnName + the name of the column to be dropped + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + @see com::sun::star::sdbcx::XDrop + */ + void dropColumn([in] com::sun::star::beans::XPropertySet table,[in]string columnName) + raises ( com::sun::star::sdbc::SQLException); +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XTableName.idl b/offapi/com/sun/star/sdb/tools/XTableName.idl new file mode 100644 index 000000000..4a196c429 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XTableName.idl @@ -0,0 +1,134 @@ +/* -*- 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_tools_XTableName_idl__ +#define __com_sun_star_sdb_tools_XTableName_idl__ + +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to manipulate table names. + + <p>When, in a database application, dealing with table names, there's many degrees + of freedom to deal with. For instance, suppose you want to have the full name of a + table object, as it should be used in a <code>SELECT</code> statement's <code>FROM</code> + part. This requires you to evaluate whether or not the table has a catalog and/or schema + name, to combine the catalog, the schema, and the basic table name into one name, respecting + the database's quoting character, and the order in which all those parts should be combined. + Additionally, you have to respect the client-side settings which tell OpenOffice.org + to use or not use catalogs and schemas in <code>SELECT</code> at all.</p> + + <p>The XTableName interface eases this and other, similar tasks around table + names.</p> + + <p>The component itself does not have life-time control mechanisms, i.e. you + cannot explicitly dispose it (com::sun::star::lang::XComponent::dispose()), + and you cannot be notified when it dies.<br/> + However, if your try to access any of its methods or attributes, after the + connection which was used to create it was closed, a com::sun::star::lang::DisposedException + will be thrown.</p> + + @see XConnectionTools + @see com::sun::star::sdbc::XDatabaseMetaData + @see com::sun::star::sdb::DataSource::Settings + + @since OOo 2.0.4 +*/ +interface XTableName +{ + /** denotes the name of the catalog which the table is a part of + */ + [attribute] string CatalogName; + + /** denotes the name of the schema which the table is a part of + */ + [attribute] string SchemaName; + + /** denotes the mere, unqualified table name, excluding any catalog and + schema. + */ + [attribute] string TableName; + + /** returns the composed table name, including the catalog and schema name, + respecting the database's quoting requirements, plus + + @param Type + the type of name composition to be used. + + @param Quote + specifies whether the single parts of the table name should be quoted + + @see CompositionType + + @throws com::sun::star::IllegalArgumentException + if the given Type does not denote a valid CompositionType + */ + string getComposedName( [in] long Type, [in] boolean Quote ) + raises ( com::sun::star::lang::IllegalArgumentException ); + + + /** sets a new composed table name + @param ComposedName + specifies the composed table name + @param Type + specifies the composition type which was used to create the composed table name + */ + void setComposedName( [in] string ComposedName, [in] long Type ); + + /** represents the table name in a form to be used in a <code>SELECT</code> statement. + + <p>On a per-data-source basis, OpenOffice.org allows to override database meta + data information in that you can specify to not use catalog and or schema names + in <code>SELECT</code> statements. Using this attribute, you can generate a table + name which respects those settings.</p> + + @see com::sun::star::sdb::DataSource::Settings + */ + [attribute, readonly] string NameForSelect; + + /** is the com::sun::star::sdb::Table object specified + by the current name. + + <p>Retrieving this attribute is equivalent to obtaining the tables + container from the connection (via com::sun::star::sdbcx::XTablesSupplier), + and calling its com::sun::star::container::XNameAccess::getByName() + method with the ComposedName.</p> + + @throws com::sun::star::container::NoSuchElementException + if, upon getting the attribute value, the current composed table name + represented by this instance does not denote an existing table in the database. + @throws com::sun::star::lang::IllegalArgumentException + if you try to set an object which does not denote a table from the underlying + database. + */ + [attribute] ::com::sun::star::beans::XPropertySet Table + { + get raises ( com::sun::star::container::NoSuchElementException ); + set raises ( com::sun::star::lang::IllegalArgumentException ); + }; +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XTableRename.idl b/offapi/com/sun/star/sdb/tools/XTableRename.idl new file mode 100644 index 000000000..d6e955581 --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XTableRename.idl @@ -0,0 +1,57 @@ +/* -*- 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_tools_XTableRename_idl__ +#define __com_sun_star_sdb_tools_XTableRename_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/tools/XConnectionSupplier.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to rename table. + + @see com::sun::star::sdb::DataSource::Settings + + @since OOo 3.3 +*/ +interface XTableRename +{ + interface XConnectionSupplier; + + /** rename the given table to the new name + + @param table + the table to be renamed + @param newName + the new name of the table + @throws com::sun::star::sdbc::SQLException + */ + void rename( [in] com::sun::star::beans::XPropertySet table, [in] string newName) + raises ( com::sun::star::sdbc::SQLException ); + + +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdb/tools/XViewAccess.idl b/offapi/com/sun/star/sdb/tools/XViewAccess.idl new file mode 100644 index 000000000..5a7b4fb9a --- /dev/null +++ b/offapi/com/sun/star/sdb/tools/XViewAccess.idl @@ -0,0 +1,67 @@ +/* -*- 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_tools_XViewAccess_idl__ +#define __com_sun_star_sdb_tools_XViewAccess_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> +#include <com/sun/star/sdb/tools/XConnectionSupplier.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/beans/XPropertySet.idl> + +module com { module sun { module star { module sdb { module tools { + +/** allows to fetch and to change the sql statements of views + + @see com::sun::star::sdb::DataSource::Settings + @see com::sun::star::sdbcx::View + + @since OOo 3.3 +*/ +interface XViewAccess +{ + interface XConnectionSupplier; + + /** returns the SQL statement of the view + + @param view + the table to be renamed + @throws com::sun::star::sdbc::SQLException + */ + string getCommand( [in] com::sun::star::beans::XPropertySet view) + raises ( com::sun::star::sdbc::SQLException ); + + /** allows to alter the SQL statement of a view + + @param view + the view to be altered + + @param command + the new SQL statement + + @throws com::sun::star::sdbc::SQLException + */ + void alterCommand( [in] com::sun::star::beans::XPropertySet view, [in] string command) + raises ( com::sun::star::sdbc::SQLException ); +}; +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/BatchUpdateException.idl b/offapi/com/sun/star/sdbc/BatchUpdateException.idl new file mode 100644 index 000000000..50018f5d7 --- /dev/null +++ b/offapi/com/sun/star/sdbc/BatchUpdateException.idl @@ -0,0 +1,59 @@ +/* -*- 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_sdbc_BatchUpdateException_idl__ +#define __com_sun_star_sdbc_BatchUpdateException_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is thrown when an error occurs during a batch update operation. + + + <p>In addition to the information provided by + com::sun::star::sdbc::SQLException + , a + <code>BatchUpdateException</code> + provides the update counts for all commands + that were executed successfully during the batch update, that is, all commands + that were executed before the error occurred. The order of elements in an + array of update counts corresponds to the order in which commands were added + to the batch.</p> + */ +published exception BatchUpdateException: SQLException +{ + + /** is an array of + <code>long</code> + , with each element + indicating the update count for a SQL command that executed + successfully before the exception was thrown. + */ + sequence<long> UpdateCounts; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/BestRowScope.idl b/offapi/com/sun/star/sdbc/BestRowScope.idl new file mode 100644 index 000000000..da8d66a9b --- /dev/null +++ b/offapi/com/sun/star/sdbc/BestRowScope.idl @@ -0,0 +1,68 @@ +/* -*- 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_sdbc_BestRowScope_idl__ +#define __com_sun_star_sdbc_BestRowScope_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines how long a row identifier is valid. + */ +published constants BestRowScope +{ + + /** indicates that the scope of the best row identifier is + very temporary, lasting only while the row is being used. + A possible value for the column + <code>SCOPE</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long TEMPORARY = 0; + + /** indicates that the scope of the best row identifier is + the remainder of the current transaction. + A possible value for the column + <code>SCOPE</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long TRANSACTION = 1; + + /** indicates that the scope of the best row identifier is + the remainder of the current session. + A possible value for the column + <code>SCOPE</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long SESSION = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/BestRowType.idl b/offapi/com/sun/star/sdbc/BestRowType.idl new file mode 100644 index 000000000..df95e3fb4 --- /dev/null +++ b/offapi/com/sun/star/sdbc/BestRowType.idl @@ -0,0 +1,65 @@ +/* -*- 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_sdbc_BestRowType_idl__ +#define __com_sun_star_sdbc_BestRowType_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines the type of the best row identifier. + */ +published constants BestRowType +{ + + /** indicates that the best row identifier may or may not be a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long UNKNOWN = 0; + + /** indicates that the best row identifier is NOT a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long NOT_PSEUDO = 1; + + /** indicates that the best row identifier is a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + XDatabaseMetaData::getBestRowIdentifier(). + */ + const long PSEUDO = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/CallableStatement.idl b/offapi/com/sun/star/sdbc/CallableStatement.idl new file mode 100644 index 000000000..b61cd0c48 --- /dev/null +++ b/offapi/com/sun/star/sdbc/CallableStatement.idl @@ -0,0 +1,95 @@ +/* -*- 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_sdbc_CallableStatement_idl__ +#define __com_sun_star_sdbc_CallableStatement_idl__ + +#include <com/sun/star/sdbc/PreparedStatement.idl> + + module com { module sun { module star { module sdbc { + + published interface XRow; + published interface XOutParameters; + + +/** is used to execute SQL stored procedures. + + + <p> + SDBC provides a stored procedure SQL escape that allows stored procedures + to be called in a standard way for all RDBMSs. This escape syntax has one + form that includes a result parameter and one that does not. If used, the + result parameter must be registered as an OUT parameter. The other parameters + can be used for input, output, or both. Parameters are referred to sequentially, + by number. The first parameter is 1. + </p> + <p> + <code>{?=call&lt;procedure-name&gt;[&lt;arg1&gt;,&lt;arg2&gt;,...]}<br/>{call&lt;procedure-name&gt;[&lt;arg1&gt;,&lt;arg2&gt;,...]} + </code> + </p> + <p> + IN parameter values are set using the set methods inherited from + com::sun::star::sdbc::PreparedStatement + . The type of all + OUT parameters must be registered prior to executing the stored procedure; + their values are retrieved after execution via the + <code>get</code> methods provided by the com::sun::star::sdbc::XRow. + </p> + <p> + A + <code>CallableStatement</code> + can return one + com::sun::star::sdbc::XResultSet + or multiple + com::sun::star::sdbc::ResultSet + objects. Multiple + <code>ResultSet</code> + objects are handled using operations inherited from + com::sun::star::sdbc::XPreparedStatement. + </p> + <p> + For maximum portability, a call's + com::sun::star::sdbc::ResultSet + objects and + update counts should be processed prior to getting the values of output + parameters. + </p> +*/ +published service CallableStatement +{ + service PreparedStatement; + + + /** is used for retrieve the values of OUT parameters. + */ + interface XRow; + + + /** is used to declare parameters as OUT parameters. + */ + interface XOutParameters; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ChangeAction.idl b/offapi/com/sun/star/sdbc/ChangeAction.idl new file mode 100644 index 000000000..097f608f5 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ChangeAction.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbc_ChangeAction_idl__ +#define __com_sun_star_sdbc_ChangeAction_idl__ + +module com { module sun { module star { module sdbc { + +/** @deprecated determines the type of the change which is going to be performed. +*/ +published constants ChangeAction +{ + /** + indicates that an insert will be performed. + */ + const long INSERT = 1; + /** + indicates that an update will be performed. + */ + const long UPDATE = 2; + /** + indicates that a delete will be performed. + */ + const long DELETE = 3; + /** + indicates that an undo will be performed. + */ + const long UNDO = 4; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ChangeEvent.idl b/offapi/com/sun/star/sdbc/ChangeEvent.idl new file mode 100644 index 000000000..a680c5b83 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ChangeEvent.idl @@ -0,0 +1,44 @@ +/* -*- 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_sdbc_ChangeEvent_idl__ +#define __com_sun_star_sdbc_ChangeEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + +module com { module sun { module star { module sdbc { + +/** @deprecated indicates the type of change action on the data source. +*/ +published struct ChangeEvent : com::sun::star::lang::EventObject +{ + /** indicates the type of change. + @see com::sun::star::sdbc::ChangeAction + */ + long Action; + + /** indicates the number of rows affected by the change. */ + long Rows; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ColumnSearch.idl b/offapi/com/sun/star/sdbc/ColumnSearch.idl new file mode 100644 index 000000000..200179475 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ColumnSearch.idl @@ -0,0 +1,91 @@ +/* -*- 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_sdbc_ColumnSearch_idl__ +#define __com_sun_star_sdbc_ColumnSearch_idl__ + + module com { module sun { module star { module sdbc { + + +/** indicates in which way a column can be used in the WHERE search. + */ +published constants ColumnSearch +{ + + /** A possible value for column <code>SEARCHABLE</code> in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getTypeInfo(). + <p> + Indicates that + <code>WHERE</code> + search clauses are not supported + for this type. + */ + const long NONE = 0; + + /** A possible value for column <code>SEARCHABLE</code> in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getTypeInfo(). + <p> + Indicates that the only + <code>WHERE</code> + search clause that can + be based on this type is + <code>WHERE...LIKE</code>. + */ + const long CHAR = 1; + + /** A possible value for column <code>SEARCHABLE</code> in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc">XDatabaseMetaData::getTypeInfo(). + <p> + Indicates that one can base all + <code>WHERE</code> + search clauses + except + <code>WHERE...LIKE</code> + on this data type. + */ + const long BASIC = 2; + + /** A possible value for column + <code>SEARCHABLE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc">XDatabaseMetaData::getTypeInfo(). + <p> + Indicates that all + <code>WHERE</code> + search clauses can be + based on this type. + */ + const long FULL = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ColumnType.idl b/offapi/com/sun/star/sdbc/ColumnType.idl new file mode 100644 index 000000000..026d24a72 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ColumnType.idl @@ -0,0 +1,65 @@ +/* -*- 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_sdbc_ColumnType_idl__ +#define __com_sun_star_sdbc_ColumnType_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines the type of a version column. + */ +published constants ColumnType +{ + + /** indicates that this column may or may not be a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getVersionColumns(). + */ + const long UNKNOWN = 0; + + /** indicates that this column is NOT a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getVersionColumns(). + */ + const long NOT_PSEUDO = 1; + + /** indicates that this column is a pseudo-column. + A possible value for the column + <code>PSEUDO_COLUMN</code> + in the + com::sun::star::sdbc::XResultSet object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getVersionColumns(). + */ + const long PSEUDO = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ColumnValue.idl b/offapi/com/sun/star/sdbc/ColumnValue.idl new file mode 100644 index 000000000..92d280a10 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ColumnValue.idl @@ -0,0 +1,50 @@ +/* -*- 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_sdbc_ColumnValue_idl__ +#define __com_sun_star_sdbc_ColumnValue_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines whether a column allows SQL NULL values or not. + */ +published constants ColumnValue +{ + + /** indicates that a column does not allow NULL values. + */ + const long NO_NULLS = 0; + + /** indicates that a column does allow NULL values. + */ + const long NULLABLE = 1; + + /** indicates that the nullability of the column is unknown. + */ + const long NULLABLE_UNKNOWN = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/Connection.idl b/offapi/com/sun/star/sdbc/Connection.idl new file mode 100644 index 000000000..2c98d81e0 --- /dev/null +++ b/offapi/com/sun/star/sdbc/Connection.idl @@ -0,0 +1,83 @@ +/* -*- 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_sdbc_Connection_idl__ +#define __com_sun_star_sdbc_Connection_idl__ + +#include <com/sun/star/lang/XComponent.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + published interface XWarningsSupplier; + + +/** 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 + com::sun::star::sdbc::XConnection::getMetaData() + method. + </p> + <p> + <b> + Note: + </b> + By default the Connection automatically commits + changes after executing each statement. If auto commit has been + disabled, an explicit commit must be done or database changes will + not be saved. + + </p> + @see com::sun::star::sdbc::XStatement + @see com::sun::star::sdbc::XResultSet + @see com::sun::star::sdbc::XDatabaseMetaData + */ +published service Connection +{ + + /** controls the closing of a connection. + */ + interface com::sun::star::lang::XComponent; + + + /** the main interface for interaction with a connection to a database. + */ + interface XConnection; + + + /** 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; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ConnectionPool.idl b/offapi/com/sun/star/sdbc/ConnectionPool.idl new file mode 100644 index 000000000..31d12d866 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ConnectionPool.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbc_ConnectionPool_idl__ +#define __com_sun_star_sdbc_ConnectionPool_idl__ + + module com { module sun { module star { module sdbc { + + published interface XConnectionPool; + + +/** is the basic service for pooling SDBC connections. + + <p> + When the method + com::sun::star::sdbc::XPooledConnection::getConnection() + is called, + the ConnectionPool will attempt to locate a suitable pooled connection + or create a new connection from the DriverManager. When the connection + will be released it will move to the pool of unused connections. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XConnection + */ +published service ConnectionPool: XConnectionPool; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ConnectionProperties.idl b/offapi/com/sun/star/sdbc/ConnectionProperties.idl new file mode 100644 index 000000000..c12689533 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ConnectionProperties.idl @@ -0,0 +1,61 @@ +/* -*- 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_sdbc_ConnectionProperties_idl__ +#define __com_sun_star_sdbc_ConnectionProperties_idl__ + + module com { module sun { module star { module sdbc { + + + +/** represents the properties for a connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::JDBCConnectionProperties + @see com::sun::star::sdbc::ODBCConnectionProperties + @see com::sun::star::sdbc::FILEConnectionProperties + @see com::sun::star::sdbc::DBASEConnectionProperties + @see com::sun::star::sdbc::FLATConnectionProperties + + */ +published service ConnectionProperties +{ + /** the username + */ + [optional, property] string user; + + /** the password + */ + [optional, property] string password; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl b/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl new file mode 100644 index 000000000..58fd2afde --- /dev/null +++ b/offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl @@ -0,0 +1,54 @@ +/* -*- 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_sdbc_DBASEConnectionProperties_idl__ +#define __com_sun_star_sdbc_DBASEConnectionProperties_idl__ + +#include <com/sun/star/sdbc/FILEConnectionProperties.idl> + +module com { module sun { module star { module sdbc { + +/** represents the properties for a dBase connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::FILEConnectionProperties + */ +service DBASEConnectionProperties +{ + service com::sun::star::sdbc:: FILEConnectionProperties; + + /** `TRUE` when deleted rows should be shown, otherwise `FALSE` + */ + [optional, property] boolean ShowDeleted; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/DataTruncation.idl b/offapi/com/sun/star/sdbc/DataTruncation.idl new file mode 100644 index 000000000..91363dd6e --- /dev/null +++ b/offapi/com/sun/star/sdbc/DataTruncation.idl @@ -0,0 +1,81 @@ +/* -*- 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_sdbc_DataTruncation_idl__ +#define __com_sun_star_sdbc_DataTruncation_idl__ + +#include <com/sun/star/sdbc/SQLWarning.idl> + + module com { module sun { module star { module sdbc { + + +/** reports a DataTruncation warning, on reads, or is thrown as a DataTruncation exception, + on writes, when a data value is unexpectedly truncated. + + <p> + The SQL state for a + <code>DataTruncation</code> + is <code>01004</code>. + </p> + */ +published exception DataTruncation: SQLWarning +{ + + /** is the index of the parameter or column value. + */ + long Index; + + + /** is + `TRUE` + if a parameter value is truncated. + */ + boolean IsParameter; + + + /** is + `TRUE` + if a read was truncated. + */ + boolean DuringRead; + + + /** contains the number of bytes of data that should have been transferred. + This number may be approximate if data conversions were being + performed. The value may be + <code>-1</code> + if the size is unknown. + */ + long DataSize; + + + /** contains the number of bytes of data actually transferred. + The value may be + <code>-1</code> + if the size is unknown. + */ + long TransferSize; +}; + + +}; }; }; }; +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/DataType.idl b/offapi/com/sun/star/sdbc/DataType.idl new file mode 100644 index 000000000..622f5986e --- /dev/null +++ b/offapi/com/sun/star/sdbc/DataType.idl @@ -0,0 +1,136 @@ +/* -*- 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_sdbc_DataType_idl__ +#define __com_sun_star_sdbc_DataType_idl__ + + module com { module sun { module star { module sdbc { + + +/** These constants are used to specify database data types which are used + to identify the generic SQL types. The definition is based on JDBC 3.0. + + <p> + The actual type constant values are equivalent to those in the X/Open CLI. + </p> + <p> + Precise information about the specific types can be got from + XDatabaseMetaData::getTypeInfo(). + </p> + */ +published constants DataType +{ + const long BIT = -7; + + const long TINYINT = -6; + + const long SMALLINT = 5; + + const long INTEGER = 4; + + const long BIGINT = -5; + + const long FLOAT = 6; + + const long REAL = 7; + + const long DOUBLE = 8; + + const long NUMERIC = 2; + + const long DECIMAL = 3; + + const long CHAR = 1; + + const long VARCHAR = 12; + + const long LONGVARCHAR = -1; + + const long DATE = 91; + + const long TIME = 92; + + const long TIMESTAMP = 93; + + const long BINARY = -2; + + const long VARBINARY = -3; + + const long LONGVARBINARY = -4; + + const long SQLNULL = 0; + + + /** indicates that the SQL type is database-specific and + gets mapped to an object that can be accessed via + the method com::sun::star::sdbc::XRow::getObject(). + */ + const long OTHER = 1111; + + + /** indicates a type which is represented by an object which implements + this type. + */ + const long OBJECT = 2000; + + + /** describes a type based on a built-in type. + It is a user-defined data type (UDT). + */ + const long DISTINCT = 2001; + + + /** indicates a type consisting of attributes that may be any type. + It is a user-defined data type (UDT). + */ + const long STRUCT = 2002; + + + /** indicates a type representing an SQL ARRAY. + */ + const long ARRAY = 2003; + + + /** indicates a type representing an SQL Binary Large Object. + */ + const long BLOB = 2004; + + + /** indicates a type representing an SQL Character Large Object. + */ + const long CLOB = 2005; + + + /** indicates a type representing an SQL REF, a referencing type. + */ + const long REF = 2006; + + /** identifies the generic SQL type + * <code>BOOLEAN</code>. + * + * @since OOo 2.0 + */ + const long BOOLEAN = 16; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/Deferrability.idl b/offapi/com/sun/star/sdbc/Deferrability.idl new file mode 100644 index 000000000..3f42ca8bb --- /dev/null +++ b/offapi/com/sun/star/sdbc/Deferrability.idl @@ -0,0 +1,68 @@ +/* -*- 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_sdbc_Deferrability_idl__ +#define __com_sun_star_sdbc_Deferrability_idl__ + + module com { module sun { module star { module sdbc { + + +/** indicates the Deferrability of key constraints. + */ +published constants Deferrability +{ + + /** A possible value for the column <code>DEFERRABILITY</code> + in the + <code>XResultSet</code> objects returned by the methods + <code>getImportedKeys</code>, <code>getExportedKeys</code>, + and <code>getCrossReference</code>. + <P>Indicates deferrability. See SQL-92 for a definition. + +<!-- JRH: This and next two comments are identical. Is something missing? + INITIALLY_DEFERRED, INITIALLY_IMMEDIATE, and NONE? --> +*/ + const long INITIALLY_DEFERRED = 5; + + /** A possible value for the column <code>DEFERRABILITY</code> + in the + <code>XResultSet</code> objects returned by the methods + <code>getImportedKeys</code>, <code>getExportedKeys</code>, + and <code>getCrossReference</code>. + <P>Indicates deferrability. See SQL-92 for a definition. + */ + const long INITIALLY_IMMEDIATE = 6; + + /** A possible value for the column <code>DEFERRABILITY</code> + in the + <code>XResultSet</code> objects returned by the methods + <code>getImportedKeys</code>, <code>getExportedKeys</code>, + and <code>getCrossReference</code>. + <P>Indicates deferrability. See SQL-92 for a definition. + */ + const long NONE = 7; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/Driver.idl b/offapi/com/sun/star/sdbc/Driver.idl new file mode 100644 index 000000000..4197838b7 --- /dev/null +++ b/offapi/com/sun/star/sdbc/Driver.idl @@ -0,0 +1,68 @@ +/* -*- 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_sdbc_Driver_idl__ +#define __com_sun_star_sdbc_Driver_idl__ + + module com { module sun { module star { module sdbc { + + published interface XDriver; + + +/** is the service that every driver class must implement. + + <p> + Each driver should supply a service that implements + the Driver interface. + + </p> + <p> + The DriverManager will try to load as many drivers as it can + find and then for any given connection request, it will ask each + driver in turn to try to connect to the target URL. + + </p> + <p> + It is strongly recommended that each Driver object should be + small and standalone so that the Driver object can be loaded and + queried without bringing in vast quantities of supporting code. + + </p> + <p> + Each driver should be a one instance service. + + </p> + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::XConnection + */ +published service Driver +{ + + /** is the main interface to access a database driver. + */ + interface XDriver; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/DriverManager.idl b/offapi/com/sun/star/sdbc/DriverManager.idl new file mode 100644 index 000000000..e9166ef91 --- /dev/null +++ b/offapi/com/sun/star/sdbc/DriverManager.idl @@ -0,0 +1,32 @@ +/* -*- 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_sdbc_DriverManager_idl__ +#define __com_sun_star_sdbc_DriverManager_idl__ + +#include <com/sun/star/sdbc/XDriverManager2.idl> + +module com { module sun { module star { module sdbc { + +published service DriverManager : XDriverManager2; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/DriverPropertyInfo.idl b/offapi/com/sun/star/sdbc/DriverPropertyInfo.idl new file mode 100644 index 000000000..6282fc4aa --- /dev/null +++ b/offapi/com/sun/star/sdbc/DriverPropertyInfo.idl @@ -0,0 +1,80 @@ +/* -*- 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_sdbc_DriverPropertyInfo_idl__ +#define __com_sun_star_sdbc_DriverPropertyInfo_idl__ + + module com { module sun { module star { module sdbc { + + +/** describes the driver properties for making a connection. + + + <p> + The DriverPropertyInfo is of interest only to advanced programmers + who need to interact with a driver to discover and supply properties + for connections. + </p> + */ +published struct DriverPropertyInfo +{ + /** is the name of the property. + */ + string Name; + + + /** is a brief description of the property, which may be null. + */ + string Description; + + + /** is + `TRUE` + if a value must be supplied for this property + during + <code>Driver.connect</code> + and + `FALSE` + otherwise. + */ + boolean IsRequired; + + + /** specifies the current value of the property, + based on the driver-supplied default values. This field + may be empty if no value is known. + */ + string Value; + + + /** contains a sequence of possible values if the value for the field + <code>DriverPropertyInfo.value</code> + may be selected + from a particular set of values; otherwise empty. + */ + sequence<string> Choices; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl b/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl new file mode 100644 index 000000000..43c6d4c74 --- /dev/null +++ b/offapi/com/sun/star/sdbc/FILEConnectionProperties.idl @@ -0,0 +1,61 @@ +/* -*- 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_sdbc_FILEConnectionProperties_idl__ +#define __com_sun_star_sdbc_FILEConnectionProperties_idl__ + +#include <com/sun/star/sdbc/ConnectionProperties.idl> + +module com { module sun { module star { module sdbc { + +/** represents the properties for a FILE connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::ConnectionProperties + */ +service FILEConnectionProperties +{ + service com::sun::star::sdbc::ConnectionProperties; + + /** specifies the encoding to use to translate the backend data + + <p>See the <a href="http://www.iana.org/assignments/character-sets">IANA character set list</a> + for a list of valid values.</p> + + <p>For internal purposes (e.g., when using an encoding for which no IANA character set name + exists), this may also be an UNSIGNED SHORT value representing one of the rtl_TextEncoding + values in rtl/textenc.h.</p> + */ + [optional, property] string CharSet; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl b/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl new file mode 100644 index 000000000..99bcfb0b9 --- /dev/null +++ b/offapi/com/sun/star/sdbc/FLATConnectionProperties.idl @@ -0,0 +1,74 @@ +/* -*- 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_sdbc_FLATConnectionProperties_idl__ +#define __com_sun_star_sdbc_FLATConnectionProperties_idl__ + +#include <com/sun/star/sdbc/FILEConnectionProperties.idl> + +module com { module sun { module star { module sdbc { + +/** represents the properties for a FLAT connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::FILEConnectionProperties + */ +service FLATConnectionProperties +{ + service com::sun::star::sdbc::FILEConnectionProperties; + + /** `TRUE` when the file contains a header line otherwise `FALSE` + */ + [optional, property] boolean HeaderLine; + + /** A one character delimiter to separate the fields. + */ + [optional, property] string FieldDelimiter; + + /** A one character delimiter to separate the strings. + */ + [optional, property] string StringDelimiter; + + /** A one character delimiter to separate the decimal. + */ + [optional, property] string DecimalDelimiter; + + /** A one character delimiter to separate the thousands. + */ + [optional, property] string ThousandDelimiter; + + /** the extension of the files to be used. + */ + [property] string Extension; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/FetchDirection.idl b/offapi/com/sun/star/sdbc/FetchDirection.idl new file mode 100644 index 000000000..1b2fe7158 --- /dev/null +++ b/offapi/com/sun/star/sdbc/FetchDirection.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbc_FetchDirection_idl__ +#define __com_sun_star_sdbc_FetchDirection_idl__ + + module com { module sun { module star { module sdbc { + + +/** indicates in which direction a result set should fetch next, just for + optimization. + */ +published constants FetchDirection +{ + + /** The rows in a result set will be processed in a forward direction; first-to-last. + */ + const long FORWARD = 1000; + + /** The rows in a result set will be processed in a reverse direction; last-to-first. + */ + const long REVERSE = 1001; + + /** The order in which rows in a result set will be processed is unknown: + */ + const long UNKNOWN = 1002; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/IndexType.idl b/offapi/com/sun/star/sdbc/IndexType.idl new file mode 100644 index 000000000..d3224e997 --- /dev/null +++ b/offapi/com/sun/star/sdbc/IndexType.idl @@ -0,0 +1,89 @@ +/* -*- 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_sdbc_IndexType_idl__ +#define __com_sun_star_sdbc_IndexType_idl__ + + module com { module sun { module star { module sdbc { + + +/** indicates the type of index. + */ +published constants IndexType +{ + + /** A possible value for column + <code>TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getIndexInfo(). + <P> + Identifies table statistics that are returned in conjunction + with a table's index description. + </P> + */ + const short STATISTIC = 0; + + /** A possible value for column + <code>TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getIndexInfo(). + <P> + Indicates that this table index is a clustered index. + </P> + */ + const short CLUSTERED = 1; + + /** A possible value for column + <code>TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getIndexInfo(). + <P> + Indicates that this table index is a hashed index. + </P> + */ + const short HASHED = 2; + + /** A possible value for column + <code>TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getIndexInfo(). + <P> + Indicates that this table index is not a clustered + index, a hashed index, or table statistics; + it is something other than these. + </P> + */ + const short OTHER = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl b/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl new file mode 100644 index 000000000..1c33114b4 --- /dev/null +++ b/offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl @@ -0,0 +1,105 @@ +/* -*- 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_sdbc_JDBCConnectionProperties_idl__ +#define __com_sun_star_sdbc_JDBCConnectionProperties_idl__ + +#include <com/sun/star/sdbc/ConnectionProperties.idl> +#include <com/sun/star/beans/NamedValue.idl> + +module com { module sun { module star { module sdbc { + +/** represents the properties for a JDBC connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::ConnectionProperties + */ +service JDBCConnectionProperties +{ + service com::sun::star::sdbc::ConnectionProperties; + + /** which JDBC driver class should be loaded to create the connection. + + @see com::sun::star::sdbc::JDBCConnectionProperties::JavaDriverClassPath + */ + [optional, property] string JavaDriverClass; + + /** an optional class path to locate the + com::sun::star::sdbc::JDBCConnectionProperties::JavaDriverClass + + <p>The class path is a list of zero or more internal (see the + com::sun::star::uri::ExternalUriReferenceTranslator + service) URI references, where any space characters + (<code>U+0020</code>) are ignored (and, in particular, separate adjacent + URI references). Any “vnd.sun.star.expand” URL references + in the list are expanded using the + com::sun::star::util::theMacroExpander + singleton.</p> + + @since OOo 2.3 + */ + [optional, property] string JavaDriverClassPath; + + /** specifies a set of properties to pass to <code>java.lang.System.setProperty</code> before + loading the system's JDBC driver. + */ + [optional, property] sequence< ::com::sun::star::beans::NamedValue > SystemProperties; + + /** specifies if retrieving of auto generated values should be enabled or not. + If `TRUE` than the statement will support the XGeneratedResultSet (future concept) interface, otherwise not. + */ + [optional, property] boolean IsAutoRetrievingEnabled; + + /** specifies the statement which should be executed + when asking an "INSERT" statement for the XGeneratedResultSet (future concept) interface. + */ + [optional, property] string AutoRetrievingStatement; + + /** specifies how the type info returned by com::sun::star::sdbc::XDatabaseMetaData::getTypeInfo() will be modified. + <p>The sequence contains an even amount of string values. Each pair describes + what should be searched for and what should be replaced if found. + <br> + The syntax is: + <p> + <ul> + <li>COLUMN(2) = -5</li> + <li>COLUMN(6) = PRECISION</li> + </ul> + </p> + COLUMN(X) defines the column which will be compared and the column which will be replaced. In the example above column 2 will be compared + with the value -5. If this is true than column 6 will now return the value PRECISION. + </p> + */ + [optional, property] sequence< any > TypeInfoSettings; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/KeyRule.idl b/offapi/com/sun/star/sdbc/KeyRule.idl new file mode 100644 index 000000000..30eae77a6 --- /dev/null +++ b/offapi/com/sun/star/sdbc/KeyRule.idl @@ -0,0 +1,161 @@ +/* -*- 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_sdbc_KeyRule_idl__ +#define __com_sun_star_sdbc_KeyRule_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines the rules for foreign key constraints. + */ +published constants KeyRule +{ + + /** a possible value for the column's + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + in the + com::sun::star::sdbc::XResultSet + objects returned by the methods + com::sun::star::sdbc::XDatabaseMetaData::getImportedKeys(), + com::sun::star::sdbc::XDatabaseMetaData::getExportedKeys(), + and com::sun::star::sdbc::XDatabaseMetaData::getCrossReference(). + <P> + For the column + <code>UPDATE_RULE</code> + , + it indicates that + when the primary key is updated, the foreign key (imported key) + is changed to agree with it. + </P> + <P> + For the column + <code>DELETE_RULE</code> + , + it indicates that + when the primary key is deleted, rows that imported that key + are deleted. + </P> + */ + const long CASCADE = 0; + + /** a possible value for the column's + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + in the + com::sun::star::sdbc::XResultSet + objects returned by the methods + com::sun::star::sdbc::XDatabaseMetaData::getImportedKeys(), + com::sun::star::sdbc::XDatabaseMetaData::getExportedKeys(), + and com::sun::star::sdbc::XDatabaseMetaData::getCrossReference(). + <P> + For the column + <code>UPDATE_RULE</code> + , it indicates that + a primary key may not be updated if it has been imported by + another table as a foreign key. + </P> + <P> + For the column + <code>DELETE_RULE</code> + , it indicates that + a primary key may not be deleted if it has been imported by + another table as a foreign key. + </P> + */ + const long RESTRICT = 1; + + /** a possible value for the column's + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + in the + com::sun::star::sdbc::XResultSet + objects returned by the methods + com::sun::star::sdbc::XDatabaseMetaData::getImportedKeys(), + com::sun::star::sdbc::XDatabaseMetaData::getExportedKeys(), + and com::sun::star::sdbc::XDatabaseMetaData::getCrossReference(). + <P> + For the columns + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + , + it indicates that + when the primary key is updated or deleted, the foreign key (imported key) + is changed to <code>NULL</code>. + </P> + */ + const long SET_NULL = 2; + + /** a possible value for the column's + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + in the + com::sun::star::sdbc::XResultSet + objects returned by the methods + com::sun::star::sdbc::XDatabaseMetaData::getImportedKeys(), + com::sun::star::sdbc::XDatabaseMetaData::getExportedKeys(), + and com::sun::star::sdbc::XDatabaseMetaData::getCrossReference(). + <P> + For the columns + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + , + it indicates that if the primary key has been imported, it cannot be updated or deleted. + </P> + */ + const long NO_ACTION = 3; + + /** a possible value for the column's + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + in the + com::sun::star::sdbc::XResultSet + objects returned by the methods + com::sun::star::sdbc::XDatabaseMetaData::getImportedKeys(), + com::sun::star::sdbc::XDatabaseMetaData::getExportedKeys(), + and com::sun::star::sdbc::XDatabaseMetaData::getCrossReference(). + <P> + For the columns + <code>UPDATE_RULE</code> + and + <code>DELETE_RULE</code> + , + it indicates that + if the primary key is updated or deleted, the foreign key (imported key) + is set to the default value. + </P> + */ + const long SET_DEFAULT = 4; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl b/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl new file mode 100644 index 000000000..3f23ba4cc --- /dev/null +++ b/offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl @@ -0,0 +1,82 @@ +/* -*- 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_sdbc_ODBCConnectionProperties_idl__ +#define __com_sun_star_sdbc_ODBCConnectionProperties_idl__ + +#include <com/sun/star/sdbc/ConnectionProperties.idl> + +module com { module sun { module star { module sdbc { + +/** represents the properties for an ODBC connection (session) with a specific + database. These properties can be used when calling the method + com::sun::star::sdbc::XDriver::connect() or + com::sun::star::sdbc::XDriverManager::getConnectionWithInfo(). + + <p> + The properties for a connection contain additional information about how to connect to a database and + how to control the behavior of the resulting connection should be. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::ConnectionProperties + */ +service ODBCConnectionProperties +{ + service com::sun::star::sdbc::ConnectionProperties; + /** should the parameter "?" in prepared statement be substituted with an distinct name + */ + [optional, property] boolean ParameterNameSubstitution; + + /** the Timeout after which time a timeout should happen + */ + [optional, property] long Timeout; + + /** Silent - should the connection be silent. No user interaction while creating the connection. + */ + [optional, property] boolean Silent; + + /** should the driver should support a catalog. + */ + [optional, property] boolean UseCatalog; + + /** specifies the encoding to use to translate the backend data + + <p>See the <a href="http://www.iana.org/assignments/character-sets">IANA character set list</a> + for a list of valid values.</p> + */ + [optional, property] string CharSet; + + /** specifies if retrieving of auto generated values should be enabled or not. + If `TRUE` than the statement will support the XGeneratedResultSet (future concept) interface, otherwise not. + */ + [optional, property] boolean IsAutoRetrievingEnabled; + + /** specifies the statement which should be executed + when asking an "INSERT" statement for the XGeneratedResultSet (future concept) interface. + */ + [optional, property] string AutoRetrievingStatement; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/PreparedStatement.idl b/offapi/com/sun/star/sdbc/PreparedStatement.idl new file mode 100644 index 000000000..007f5def8 --- /dev/null +++ b/offapi/com/sun/star/sdbc/PreparedStatement.idl @@ -0,0 +1,258 @@ +/* -*- 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_sdbc_PreparedStatement_idl__ +#define __com_sun_star_sdbc_PreparedStatement_idl__ + +#include <com/sun/star/lang/XComponent.idl> + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/XCancellable.idl> + + 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 + com::sun::star::sdbc::XParameters::setInt() + should be used. + </P> + <p> + If arbitrary parameter type conversions are required, the method + com::sun::star::sdbc::XParameters::setObject() + should be used with a target SQL type. + </p> + <p> + Example of setting a parameter; <code>con</code> is an active connection. + @code{.bas} + pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?") + pstmt.setDouble(1, 153833.00) + pstmt.setLong(2, 110592) + @endcode + </p> + <P> + Only one + com::sun::star::sdbc::ResultSet + per + com::sun::star::sdbc::Statement + 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 result set will be + freed as well. + */ + interface XCloseable; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** could be used for canceling 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 + PreparedStatement. + */ + 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 + com::sun::star::sdbc::XDatabaseMetaData::supportsBatchUpdates() + </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 + com::sun::star::sdbc::DataType::BINARY + , + com::sun::star::sdbc::DataType::VARBINARY + , + com::sun::star::sdbc::DataType::LONGVARBINARY + , + com::sun::star::sdbc::DataType::CHAR + , + com::sun::star::sdbc::DataType::VARCHAR + , + and + com::sun::star::sdbc::DataType::LONGVARCHAR + 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 ensure 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ProcedureColumn.idl b/offapi/com/sun/star/sdbc/ProcedureColumn.idl new file mode 100644 index 000000000..2ddcedb47 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ProcedureColumn.idl @@ -0,0 +1,98 @@ +/* -*- 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_sdbc_ProcedureColumn_idl__ +#define __com_sun_star_sdbc_ProcedureColumn_idl__ + + module com { module sun { module star { module sdbc { + + +/** indicates the type of a procedure column. + */ +published constants ProcedureColumn +{ + + /** indicates that the type of the column is unknown. A possible value for + the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long UNKNOWN = 0; + + /** indicates that the column stores IN parameters. + A possible value for the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long IN = 1; + + /** indicates that the column stores INOUT parameters. + A possible value for the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long INOUT = 2; + + /** indicates that the column stores results. + A possible value for the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long RESULT = 3; + + /** indicates that the column stores OUT parameters. + A possible value for the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long OUT = 4; + + /** Indicates that the column stores return values. + A possible value for the column + <code>COLUMN_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedureColumns(). + */ + const long RETURN = 5; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ProcedureResult.idl b/offapi/com/sun/star/sdbc/ProcedureResult.idl new file mode 100644 index 000000000..bdd0ed2ee --- /dev/null +++ b/offapi/com/sun/star/sdbc/ProcedureResult.idl @@ -0,0 +1,77 @@ +/* -*- 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_sdbc_ProcedureResult_idl__ +#define __com_sun_star_sdbc_ProcedureResult_idl__ + + module com { module sun { module star { module sdbc { + + +/** determines whether a procedure returns a result or not. + */ +published constants ProcedureResult +{ + + /** A possible value for column + <code>PROCEDURE_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedures(). + <p> + Indicates that it is not known whether the procedure returns + a result. + </p> + */ + const long UNKNOWN = 0; + + /** A possible value for column + <code>PROCEDURE_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedures(). + <p> + Indicates that the procedure does not return + a result. + </p> + */ + const long NONE = 1; + + /** A possible value for column + <code>PROCEDURE_TYPE</code> + in the + com::sun::star::sdbc::XResultSet + object returned by the method + com::sun::star::sdbc::XDatabaseMetaData::getProcedures(). + <p> + Indicates that the procedure returns + a result. + </p> + */ + const long RETURN = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ResultSet.idl b/offapi/com/sun/star/sdbc/ResultSet.idl new file mode 100644 index 000000000..69f1cd617 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ResultSet.idl @@ -0,0 +1,236 @@ +/* -*- 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_sdbc_ResultSet_idl__ +#define __com_sun_star_sdbc_ResultSet_idl__ + +#include <com/sun/star/lang/XComponent.idl> + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/XCancellable.idl> + + module com { module sun { module star { module sdbc { + + published interface XStatement; + published interface XRow; + published interface XRowUpdate; + published interface XResultSet; + published interface XResultSetUpdate; + published interface XResultSetMetaDataSupplier; + published interface XWarningsSupplier; + published interface XColumnLocate; + published interface XCloseable; + + +/** provides access to a table of data. A ResultSet + object is usually generated by executing a Statement. + + + + <p> + A ResultSet maintains a cursor pointing to its current row of + data. Initially the cursor is positioned before the first row. + The "next" method moves the cursor to the next row. + </p> + <p> + The getXXX methods retrieve column values for the current + row. You can retrieve values using either the index number of the + column. Columns are numbered from 1. + </p> + <p> + For maximum portability, ResultSet columns within each row should be + read in left-to-right order and each column should be read only once. + </p> + <p> + For the getXXX methods, the SDBC driver attempts to convert the + underlying data to the specified type and returns a suitable + value. + </p> + <p> + Column names used as input to the findColumn method are case + insensitive. When several columns have the same name, then the value + of the first matching column will be returned. The column name option is + designed to be used when column names are used in the SQL + query. For columns that are NOT explicitly named in the query, it + is best to use column numbers. If column names are used, there is + no way for the programmer to guarantee that they actually refer to + the intended columns. + </p> + <p> + A ResultSet is automatically closed (disposed) by the Statement that + generated it when that Statement is closed, re-executed, or used + to retrieve the next result from a sequence of multiple results. + </p> + <p> + The number, types, and properties of a ResultSet's columns are + provided by the ResultSetMetaData object returned by the getMetaData + method. + </p> + */ +published service ResultSet +{ + + /** 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 result set. + + <p> + The creating statement will still be open after disposing. + </p> + + <p> + This interface is mandatory only for JDBC conformance, + otherwise it is optional. + </p> + */ + [optional] interface XCloseable; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** controls the chaining of warnings, which may occur on every call + to the connected database. + + <p> + Chained warnings from previous calls will be cleared before processing a new call. + </p> + + <p> + This interface is mandatory only for JDBC conformance, otherwise it is optional. + </p> + */ + [optional] interface XWarningsSupplier; + + + /** provides the access to the result set description. + */ + interface XResultSetMetaDataSupplier; + + + /** is the interface for navigating on the rows on a result set. + */ + interface XResultSet; + + + /** is the interface for updating row data to the database. + + <p> + The implementation is optional. + </p> + */ + [optional] interface XResultSetUpdate; + + + /** is the interface for accessing the data of the current row. + */ + interface XRow; + + + /** is used for locating a column by its name. + */ + interface XColumnLocate; + + + /** is the interface for updating the data of the current row. + + <p> + The implementation is optional. + </p> + */ + [optional] interface XRowUpdate; + + + /** 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 doesn't support positioned update/delete, this property is + a noop. To ensure 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> + */ + [optional, readonly, property] string CursorName; + + + /** retrieves the result set concurrency. + + @see com::sun::star::sdbc::ResultSetConcurrency + */ + [readonly, property] long ResultSetConcurrency; + + + /** determines the result set type. + + @see com::sun::star::sdbc::ResultSetType + */ + [readonly, property] long ResultSetType; + + + /** retrieves the direction for fetching rows from database tables + that is the default for result sets generated from this + com::sun::star::sdbcx::Statement + object. + <br/> + If this <code>Statement</code> object has not set a fetch direction, + the return value is implementation-specific. + */ + [property] long FetchDirection; + + + /** retrieves the number of result set rows that is the default fetch size + for result sets generated from this + com::sun::star::sdbcx::Statement + object. + <br/> + If this + com::sun::star::sdbcx::Statement + object has not set a fetch size, + the return value is implementation-specific. + */ + [property] long FetchSize; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ResultSetConcurrency.idl b/offapi/com/sun/star/sdbc/ResultSetConcurrency.idl new file mode 100644 index 000000000..5721b6091 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ResultSetConcurrency.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbc_ResultSetConcurrency_idl__ +#define __com_sun_star_sdbc_ResultSetConcurrency_idl__ + + module com { module sun { module star { module sdbc { + + +/** describes the different scroll capabilities of a result set. + */ +published constants ResultSetConcurrency +{ + + /** is the concurrency mode for a + com::sun::star::sdb::ResultSet + object that may NOT be updated. + */ + const long READ_ONLY = 1007; + + + /** is the concurrency mode for a + com::sun::star::sdb::ResultSet + object that may be updated. + */ + const long UPDATABLE = 1008; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/ResultSetType.idl b/offapi/com/sun/star/sdbc/ResultSetType.idl new file mode 100644 index 000000000..9398113c1 --- /dev/null +++ b/offapi/com/sun/star/sdbc/ResultSetType.idl @@ -0,0 +1,60 @@ +/* -*- 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_sdbc_ResultSetType_idl__ +#define __com_sun_star_sdbc_ResultSetType_idl__ + + module com { module sun { module star { module sdbc { + + +/** describes the different scroll capabilities of a result set. + */ +published constants ResultSetType +{ + + /** is the type for a + com::sun::star::sdb::ResultSet + object whose cursor may move only forward. + */ + const long FORWARD_ONLY = 1003; + + + /** is the type for a + com::sun::star::sdb::ResultSet + object that is scrollable + but generally not sensitive to changes made by others. + */ + const long SCROLL_INSENSITIVE = 1004; + + + /** is the type for a + com::sun::star::sdb::ResultSet + object that is scrollable + and generally sensitive to changes made by others. + */ + const long SCROLL_SENSITIVE = 1005; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/RowSet.idl b/offapi/com/sun/star/sdbc/RowSet.idl new file mode 100644 index 000000000..f8b918368 --- /dev/null +++ b/offapi/com/sun/star/sdbc/RowSet.idl @@ -0,0 +1,177 @@ +/* -*- 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_sdbc_RowSet_idl__ +#define __com_sun_star_sdbc_RowSet_idl__ + +#include <com/sun/star/sdbc/ResultSet.idl> +#include <com/sun/star/sdbc/XColumnLocate.idl> + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + + module com { module sun { module star { module sdbc { + + published interface XRowSet; + published interface XParameters; + + +/** is a client side ResultSet, which combines the characteristics of a + com::sun::star::sdbc::Statement + and a + com::sun::star::sdbc::ResultSet. + + + <p> + It acts like a typical bean. Before you use the RowSet, you have to specify a + set of properties like a DataSource and a Command and other properties known of + Statement. + <br/> + Afterwards, you can populate the RowSet by its execute method to fill the set + with data. + </p> + <p> + On the one hand, a RowSet can be used as a short cut to retrieve the data of a DataSource. + You don't have to establish a connection, create a Statement, and then create + a ResultSet. On the other hand, a row set can be used to implement capabilities for + a result set, which are not supported by a driver result set, like caching + strategies or update capabilities. + </p> + */ +published service RowSet +{ + service com::sun::star::sdbc::ResultSet; + + /** used to execute and to add/remove listeners. + + <p>To refresh the content of a RowSet, use this interface's XRowSet::execute() + method.</p> + */ + interface XRowSet; + + // used to set parameters. + interface XParameters; + + /** allows locating columns whose name is known only. + */ + interface XColumnLocate; + + /** is the name of a named datasource to use.@see com::sun::star::sdbc:XDataSource + */ + [property] string DataSourceName; + + + /** is the connection URL. Could be used instead of the DataSourceName. + */ + [property] string URL; + + + /** is the command which should be executed. + */ + [property] string Command; + + + /** indicates the transaction isolation level, which should be used for the + connection.@see com::sun::star::sdbc::TransactionIsolation + */ + [property] long TransactionIsolation; + + + /** is the type map that will be used for the custom mapping of SQL structured types + and distinct types. + */ + [property] com::sun::star::container::XNameAccess TypeMap; + + + /** returns if escape processing is on or off. + If escape scanning is on (the default), the driver will do + escape substitution before sending the SQL to the database. + This is only evaluated, if the CommandType is COMMAND. + */ + [property] boolean EscapeProcessing; + + + /** retrieves the number of seconds the driver will wait for a Statement + to execute. If the limit is exceeded, a + com::sun::star::sdbc::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 + com::sun::star::sdbc::DataType::BINARY + , + com::sun::star::sdbc::DataType::VARBINARY + , + com::sun::star::sdbc::DataType::LONGVARBINARY + , + com::sun::star::sdbc::DataType::CHAR + , + com::sun::star::sdbc::DataType::VARCHAR + , + and + com::sun::star::sdbc::DataType::LONGVARCHAR + columns. + If the limit is exceeded, the excess data is silently discarded. + <br/> + 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; + + + /** determines the user for whom to open the connection. + */ + [property] string User; + + + /** determines the user for whom to open the connection. + */ + [property] string Password; + + + /** determine the result set type. + + @see com::sun::star::sdbc::ResultSetType + */ + [property] long ResultSetType; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/SQLException.idl b/offapi/com/sun/star/sdbc/SQLException.idl new file mode 100644 index 000000000..bd2658334 --- /dev/null +++ b/offapi/com/sun/star/sdbc/SQLException.idl @@ -0,0 +1,70 @@ +/* -*- 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_sdbc_SQLException_idl__ +#define __com_sun_star_sdbc_SQLException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + module com { module sun { module star { module sdbc { + + +/** is an exception that provides information on a database access error. + + <p> + Each + com::sun::star::sdbc::SQLException + provides several kinds of information: + </p> + <p> + <ul> + <li> + a string describing the error. This is used as the + com::sun::star::uno::Exception + message. + </li> + </ul> + </p> + */ +published exception SQLException: com::sun::star::uno::Exception +{ + /** returns a string, which uses the XOPEN SQLState conventions. + The values of the SQLState string are described in the XOPEN SQL spec. + */ + string SQLState; + + /** returns an integer error code that is specific to each vendor. Normally this will + be the actual error code returned by the underlying database. + */ + long ErrorCode; + + /** returns a chain to the next Exception. + This can be used to provide additional + error information. + */ + any NextException; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/SQLWarning.idl b/offapi/com/sun/star/sdbc/SQLWarning.idl new file mode 100644 index 000000000..e13468e96 --- /dev/null +++ b/offapi/com/sun/star/sdbc/SQLWarning.idl @@ -0,0 +1,46 @@ +/* -*- 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_sdbc_SQLWarning_idl__ +#define __com_sun_star_sdbc_SQLWarning_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is an exception that provides information on database access + warnings. Warnings are silently chained to the object whose method + caused it to be reported. + + @see XConnection::getWarnings + @see XResultSet::getWarnings + @see XStatement::getWarnings + */ +published exception SQLWarning: SQLException +{ +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/Statement.idl b/offapi/com/sun/star/sdbc/Statement.idl new file mode 100644 index 000000000..6b7868f78 --- /dev/null +++ b/offapi/com/sun/star/sdbc/Statement.idl @@ -0,0 +1,220 @@ +/* -*- 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_sdbc_Statement_idl__ +#define __com_sun_star_sdbc_Statement_idl__ + +#include <com/sun/star/lang/XComponent.idl> + +#include <com/sun/star/beans/XPropertySet.idl> + +#include <com/sun/star/util/XCancellable.idl> + + module com { module sun { module star { module sdbc { + + published interface XWarningsSupplier; + published interface XStatement; + published interface XBatchExecution; + published interface XMultipleResults; + published interface XCloseable; + + +/** is used for executing a static SQL statement and obtaining the results + produced by it. + + <p> + Only one ResultSet per Statement 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 Statement +{ + + /** 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 result set will be + freed as well. + */ + interface XCloseable; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** could be used for canceling 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 commands. + */ + interface XStatement; + + + /** provides the ability of batch execution. This interface is optional + for execution. + <p> + A driver implementing batch execution must return + `TRUE` + for + com::sun::star::sdbc:: XDatabaseMetaData::supportsBatchUpdates() + </p> + */ + [optional] interface XBatchExecution; + + + /** 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. + The implementation is optional. + */ + [optional] 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 + com::sun::star::sdbc::DataType::BINARY + , + com::sun::star::sdbc::DataType::VARBINARY + , + com::sun::star::sdbc::DataType::LONGVARBINARY + , + com::sun::star::sdbc::DataType::CHAR + , + com::sun::star::sdbc::DataType::VARCHAR + , + and + com::sun::star::sdbc::DataType::LONGVARCHAR + columns. + If the limit is exceeded, the excess data is silently discarded. + <br/> + 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 ensure 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. + <br/> + If this + <code>Statement</code> + object has not set a fetch direction, + the return value is implementation-specific. + */ + [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. + <br/> + If this + <code>Statement</code> + object has not set a fetch size, + the return value is implementation-specific. + */ + [property] long FetchSize; + + + /** returns if escape processing is on or off. + If escape scanning is on (the default), the driver will do + escape substitution before sending the SQL to the database. + */ + [property] boolean EscapeProcessing; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/TransactionIsolation.idl b/offapi/com/sun/star/sdbc/TransactionIsolation.idl new file mode 100644 index 000000000..9f9c4c4ac --- /dev/null +++ b/offapi/com/sun/star/sdbc/TransactionIsolation.idl @@ -0,0 +1,78 @@ +/* -*- 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_sdbc_TransactionIsolation_idl__ +#define __com_sun_star_sdbc_TransactionIsolation_idl__ + + module com { module sun { module star { module sdbc { + + +/** distinguishes different possible transaction isolation levels. + */ +published constants TransactionIsolation +{ + + /** indicates that transactions are not supported. + */ + const long NONE = 0; + + /** Dirty reads, non-repeatable reads and phantom reads can occur. + This level allows a row changed by one transaction to be read + by another transaction before any changes in that row have been + committed (a "dirty read"). If any of the changes are rolled back, + the second transaction will have retrieved an invalid row. + */ + const long READ_UNCOMMITTED = 1; + + /** Dirty reads are prevented; non-repeatable reads and phantom + reads can occur. This level only prohibits a transaction + from reading a row with uncommitted changes in it. + */ + const long READ_COMMITTED = 2; + + /** Dirty reads and non-repeatable reads are prevented; phantom + reads can occur. This level prohibits a transaction from + reading a row with uncommitted changes in it, and it also + prohibits the situation where one transaction reads a row, + a second transaction alters the row, and the first transaction + rereads the row, getting different values the second time + (a "non-repeatable read"). + */ + const long REPEATABLE_READ = 4; + + /** Dirty reads, non-repeatable reads and phantom reads are prevented. + This level includes the prohibitions in + <code>REPEATABLE_READ</code> + and further prohibits the + situation where one transaction reads all rows that satisfy + a WHERE condition, a second transaction inserts a row that + satisfies that WHERE condition, and the first transaction + rereads for the same condition, retrieving the additional + "phantom" row in the second read. + */ + const long SERIALIZABLE = 8; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XArray.idl b/offapi/com/sun/star/sdbc/XArray.idl new file mode 100644 index 000000000..ddd0e461a --- /dev/null +++ b/offapi/com/sun/star/sdbc/XArray.idl @@ -0,0 +1,231 @@ +/* -*- 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_sdbc_XArray_idl__ +#define __com_sun_star_sdbc_XArray_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + + +/** is used for mapping the SQL type com::sun::star::sdbc::DataType::ARRAY. + + By default, an <code>Array</code> is a transaction duration + reference to an SQL array. By default, an <code>Array</code> + is implemented using a SQL LOCATOR(array) internally. + */ +published interface XArray: com::sun::star::uno::XInterface +{ + + /** returns the SQL type name of the elements in + the array designated by this + <code>Array</code> + object. + <p> + If the elements are a built-in type, it returns + the database-specific type name of the elements. + If the elements are a user-defined type (UDT), + this method returns the fully-qualified SQL type name. + </p> + @returns + a String that is the database-specific name for a built-in base type or the fully-qualified SQL type name for a base type that is a UDT + + @throws SQLException + if a database access error occurs. + */ + string getBaseTypeName() raises (SQLException); + + + /** returns the SDBC type of the elements in the array designated + by this + <code>Array</code> + object. + @returns + a constant from the SDBC types that is the type code for the elements in the array designated by this Array object. + @throws SQLException + if a database access error occurs. + */ + long getBaseType() raises (SQLException); + + + /** retrieves the contents of the SQL array designated by this + <code>Array</code> + object, using the specified + <code>typeMap</code> + for type map customizations. + <p> + If the base type of the array does not match a user-defined type + in + <code>typeMap</code> + , the standard mapping is used instead. + + @param typeMap + is a map object that contains mappings of SQL type names to + services. If the + <code>typeMap</code> + is + `NULL` + , the type-map + associated with the connection for customizations of the type-mappings + is used. + + @returns + a sequence that contains the ordered elements + of the SQL array designated by this object. + + @throws SQLException + if an error occurs while attempting to access the array. + */ + sequence<any> getArray([in]com::sun::star::container::XNameAccess typeMap) + raises (SQLException); + + + /** returns an array containing a slice of the SQL array, beginning with the + specified + <code>index</code> + and containing up to + <code>count</code> + successive elements of the SQL array. + + @param index + is the array index of the first element to retrieve; + the first element is at index 1. + @param count + is the number of successive SQL array elements to retrieve. + @param typeMap + is a map object that contains mappings of SQL type names to + services. If the + <code>typeMap</code> + is + `NULL` + , the type-map + associated with the connection for customizations of the type-mappings + is used. + @returns + an array containing up to + <code>count</code> + consecutive elements of the SQL array, beginning with element + <code>index</code>. + @throws SQLException + if an error occurs while attempting to access the array. + */ + sequence<any> getArrayAtIndex([in]long index, + [in]long count, + [in]com::sun::star::container::XNameAccess + typeMap) + raises (SQLException); + + + /** returns a result set that contains the elements of the array + designated by this + <code>Array</code> + object and uses the given + <code>typeMap</code> + to map the array elements. If the base + type of the array does not match a user-defined type in + <code>typeMap</code> + or the + <code>typeMap</code> + is + `NULL` + , + the connection type mapping is used instead. + + + <p> + The result set contains one row for each array element, with + two columns in each row. The second column stores the element + value; the first column stores the index into the array for + that element (with the first array element being at index 1). + The rows are in ascending order corresponding to + the order of the indices. + </p> + + @param typeMap + contains mapping of SQL user-defined types to classes in the UNO programming language + @returns + a ResultSet object containing one row for each of the elements in the array designated by this Array object, + with the rows in ascending order based on the indices. + @throws SQLException + if a database access error occurs. + */ + XResultSet getResultSet([in]com::sun::star::container::XNameAccess typeMap) + raises (SQLException); + + + /** returns a result set holding the elements of the subarray that + starts at index + <code>index</code> + and contains up to + <code>count</code> + successive elements. This method uses the given + <code>typeMap</code> + to map the array elements. If the base + type of the array does not match a user-defined type in + <code>typeMap</code> + or the + <code>typeMap</code> + is + `NULL` + , + the connection type mapping is used instead. + + + <p> + The result set contains one row for each array element, with + two columns in each row. The second column stores the element + value; the first column stores the index into the array for + that element (with the first array element being at index 1). + The rows are in ascending order corresponding to + the order of the indices. + </p> + @param index + the array index of the first element to retrieve; the first element is at index 1. + @param count + the number of successive SQL array elements to retrieve, + @param typeMap + the Map object that contains the mapping of SQL type names to classes in the UNO programming language. + @returns + a ResultSet object containing up to count consecutive elements of the SQL array + designated by this Array object, starting at index index. + @throws SQLException + if a database access error occurs. + */ + XResultSet getResultSetAtIndex([in]long index, + [in]long count, + [in]com::sun::star::container::XNameAccess typeMap) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XBatchExecution.idl b/offapi/com/sun/star/sdbc/XBatchExecution.idl new file mode 100644 index 000000000..5ae75bfcf --- /dev/null +++ b/offapi/com/sun/star/sdbc/XBatchExecution.idl @@ -0,0 +1,70 @@ +/* -*- 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_sdbc_XBatchExecution_idl__ +#define __com_sun_star_sdbc_XBatchExecution_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + + +/** is used for collecting and executing a set of SQL statements. + */ +published interface XBatchExecution: com::sun::star::uno::XInterface +{ + + /** adds a SQL command to the current batch of commands for the statement + object. + @param sql + the SQL statement which should be appended to the batch. + + @throws SQLException + if a database access error occurs. + */ + void addBatch([in]string sql ) raises (SQLException); + + /** makes the set of commands in the current batch empty. + @throws SQLException + if a database access error occurs. + */ + void clearBatch() raises (SQLException); + + /** submits a batch of commands to the database for execution. + @returns + an array of update counts containing one element for each + command in the batch. The array is ordered according to the order in + which commands were inserted into the batch. + @throws SQLException + if a database access error occurs. + */ + sequence<long> executeBatch() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XBlob.idl b/offapi/com/sun/star/sdbc/XBlob.idl new file mode 100644 index 000000000..f40f88074 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XBlob.idl @@ -0,0 +1,222 @@ +/* -*- 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_sdbc_XBlob_idl__ +#define __com_sun_star_sdbc_XBlob_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is the representation (mapping) of an SQL <i>BLOB</i>. + + <p> + A SQL + <i> + BLOB + </i> + is a built-in type that stores a + Binary Large Object as a column value in a row of a database table. + The driver implements + <i> + BLOB + </i> + using a + SQL + <code>locator(BLOB)</code> + , which means that a + <code>Blob</code> + object contains a logical pointer to the SQL + <i> + BLOB + </i> + data rather than the data itself. + <br/> + A + <code>Blob</code> + object is valid for the duration of the transaction in which is was created. + + </p> + <p> + Methods in the interfaces + com::sun::star::sdbc::XResultSet + , + and + com::sun::star::sdbc::XPreparedStatement + , such as + <code>getBlob</code> + and + <code>setBlob</code> + allow a programmer to access the SQL + <i>BLOB</i>. + <br/> + The + <code>Blob</code> + interface provides methods for getting the length of a SQL + <i> + BLOB + </i> + (Binary Large Object) value, for materializing a + <i> + BLOB + </i> + value on the client and for determining the position of a pattern of bytes within a + <i> + BLOB + </i> + value. + </p> + */ +published interface XBlob: com::sun::star::uno::XInterface +{ + + /** returns the number of bytes in the + <i> + BLOB + </i> + value + designated by this + <code>Blob</code> + object. + @returns + the length + @throws SQLException + if a database access error occurs. + */ + hyper length() raises (SQLException); + + + /** returns as an array of bytes part or all of the + <i> + BLOB + </i> + value that this + <code>Blob</code> + object designates. The byte + array contains up to + <code>length</code> + consecutive bytes + starting at position + <code>pos</code>. + @param pos + is the ordinal position of the first byte in the + <i> + BLOB + </i> + value to be extracted; the first byte is at + position 1. + @param length + is the number of consecutive bytes to be copied. + @returns + a byte array containing up to + <code>length</code> + consecutive bytes from the + <i> + BLOB + </i> + value designated + by this + <code>Blob</code> + object, starting with the byte at position + <code>pos</code>. + @throws SQLException + if there is an error accessing the <i>BLOB</i>. + */ + sequence<byte> getBytes([in]hyper pos, [in]long length) + raises (SQLException); + + + /** retrieves the + <i> + BLOB + </i> + designated by this + <code>Blob</code> + instance as a stream. + @returns + the stream + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getBinaryStream() + raises (SQLException); + + /** determines the byte position at which the specified byte + <code>pattern</code> + begins within the + <i> + BLOB + </i> + value that this + <code>Blob</code> + object represents. The + search for + <code>pattern</code> + begins at position <code>start</code>. + + @param pattern + the pattern to search + @param start + the start position for the search + @returns + the position + @throws SQLException + if a database access error occurs. + */ + hyper position([in]sequence<byte> pattern, [in]hyper start) + raises (SQLException); + + + /** determines the byte position in the + <i> + BLOB + </i> + value + designated by this + <code>Blob</code> + object at which + <code>pattern</code> + begins. The search begins at position <code>start</code>. + @param pattern + the pattern to search + @param start + position to start + @returns + the position + @throws SQLException + if a database access error occurs. + */ + hyper positionOfBlob([in]XBlob pattern,[in] hyper start) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XClob.idl b/offapi/com/sun/star/sdbc/XClob.idl new file mode 100644 index 000000000..045dfc981 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XClob.idl @@ -0,0 +1,189 @@ +/* -*- 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_sdbc_XClob_idl__ +#define __com_sun_star_sdbc_XClob_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is the mapping for the SQL + <code>CLOB</code> + type. + + + <p> + A SQL + <code>CLOB</code> + is a built-in type + that stores a Character Large Object as a column value in a row of + a database table. + The driver implements a + <code>Clob</code> + object using a SQL + <code>locator(CLOB)</code> + , which means that a + <code>Clob</code> + object + contains a logical pointer to the SQL + <code>CLOB</code> + data rather than + the data itself. A + <code>Clob</code> + object is valid for the duration + of the transaction in which it was created. + </p> + <p> + The + <code>Clob</code> + interface provides methods for getting the + length of a SQL + <code>CLOB</code> + (Character Large Object) value, + for materializing a + <code>CLOB</code> + value on the client, and for + searching for a substring or + <code>CLOB</code> + object within a + <code>CLOB</code> + value. + </p> + <p> + Methods in the interfaces + com::sun::star::sdbc::XResultSet + , + and + com::sun::star::sdbc::XPreparedStatement + , such as + <code>getClob</code> + and + <code>setClob</code> + allow a programmer to access the SQL <code>CLOB</code>. + </p> + */ +published interface XClob: com::sun::star::uno::XInterface +{ + + /** returns the number of characters in the + <code>CLOB</code> + value + designated by this + <code>Clob</code> + object. + @returns + the length of the CLOB object + @throws SQLException + if a database access error occurs. + */ + hyper length() raises (SQLException); + + + /** returns a copy of the specified substring in the + <code>Clob</code> + value + designated by this + <code>Clob</code> + object. + + + <p> + The substring begins at position <code>pos</code> and has up + to + <code>length</code> + consecutive characters. + </p> + @param pos + the starting position, 1-based + @param length + the length of the substring + @returns + the substring + @throws SQLException + if a database access error occurs. + */ + string getSubString([in]hyper pos, [in]long length) raises (SQLException); + + + /** gets the + <code>Clob</code> + contents as a stream. + @returns + the stream + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getCharacterStream() raises (SQLException); + + + /** determines the character position at which the specified substring + <code>searchstr</code> + appears in the + <code>Clob</code>. + The search begins at position <code>start</code>. + + @param searchstr + the string to search + @param start + the starting position + @returns + the length of the CLOB object + @throws SQLException + if a database access error occurs. + */ + hyper position([in]string searchstr, [in]long start) + raises (SQLException); + + + /** determines the position at which the specified + <code>Clob</code> + object + <code>pattern</code> + appears in this + <code>Clob</code> + object. + The search begins at position <code>start</code>. + @param pattern + the CLOB to search + @param start + the starting position + @returns + the position of the CLOB inside + @throws SQLException + if a database access error occurs. + */ + hyper positionOfClob([in]XClob pattern, [in]hyper start) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XCloseable.idl b/offapi/com/sun/star/sdbc/XCloseable.idl new file mode 100644 index 000000000..144f01563 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XCloseable.idl @@ -0,0 +1,48 @@ +/* -*- 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_sdbc_XCloseable_idl__ +#define __com_sun_star_sdbc_XCloseable_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** provides for the releasing of resources acquired by the implementing object. + */ +published interface XCloseable: com::sun::star::uno::XInterface +{ + + /** releases all resources connected to an object. + @throws SQLException + if a database access error occurs. + */ + void close() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XColumnLocate.idl b/offapi/com/sun/star/sdbc/XColumnLocate.idl new file mode 100644 index 000000000..626a17853 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XColumnLocate.idl @@ -0,0 +1,75 @@ +/* -*- 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_sdbc_XColumnLocate_idl__ +#define __com_sun_star_sdbc_XColumnLocate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSetMetaData; + + +/** provides the possibility to find columns by their name. + + + <p> + When several columns have the same name, then the value + of the first matching column will be returned. The column name option is + designed to be used when column names are used in the SQL + query. For columns that are NOT explicitly named in the query, it + is best to use column numbers. If column names are used, there is + no way for the programmer to guarantee that they actually refer to + the intended columns. + </p> + */ +published interface XColumnLocate: com::sun::star::uno::XInterface +{ + + /** maps the given ResultSet column name to its ResultSet column index. + + <p> + The specification before LibreOffice 4.2 left unspecified what should + happen for an invalid column name. As a result some drivers written + against the older specification may return a special invalid value, such + as a negative number, zero, or a number greater than the number of + columns. + </p> + + @param columnName + the name of the column + @returns + the position of the column + @throws SQLException + if the column named <code>columnName</code> does not exist, + or a database access error occurs. + */ + long findColumn([in]string columnName) raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XConnection.idl b/offapi/com/sun/star/sdbc/XConnection.idl new file mode 100644 index 000000000..3548ac187 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XConnection.idl @@ -0,0 +1,406 @@ +/* -*- 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_sdbc_XConnection_idl__ +#define __com_sun_star_sdbc_XConnection_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/sdbc/XCloseable.idl> + + 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 + com::sun::star::sdbc::XDatabaseMetaData::getMetaData() + 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 + com::sun::star::sdbc::Statement + 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 + com::sun::star::sdbc::PreparedStatement. + </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 + com::sun::star::sdbc::PreparedStatement + 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 + com::sun::star::sdbc::PreparedStatement + 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 + com::sun::star::sdbc::CallableStatement + 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 + com::sun::star::sdbc::XConnection::commit() + or the method + com::sun::star::sdbc::XConnection::rollback(). + 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 + com::sun::star::sdbc::TransactionIsolation + 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 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XConnectionPool.idl b/offapi/com/sun/star/sdbc/XConnectionPool.idl new file mode 100644 index 000000000..2cb87f5d7 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XConnectionPool.idl @@ -0,0 +1,42 @@ +/* -*- 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_sdbc_XConnectionPool_idl__ +#define __com_sun_star_sdbc_XConnectionPool_idl__ + +#include <com/sun/star/sdbc/XDriverManager.idl> +#include <com/sun/star/sdbc/XDriverAccess.idl> + +module com { module sun { module star { module sdbc { + +/* + @since LibreOffice 4.1 +*/ +published interface XConnectionPool +{ + interface XDriverManager; + interface XDriverAccess; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDataSource.idl b/offapi/com/sun/star/sdbc/XDataSource.idl new file mode 100644 index 000000000..c169b8972 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDataSource.idl @@ -0,0 +1,92 @@ +/* -*- 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_sdbc_XDataSource_idl__ +#define __com_sun_star_sdbc_XDataSource_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + + +/** is used for establishing connections via a factory which is identified + by its name. A DataSource object is typically registered by a naming service + provider. + */ +published interface XDataSource: com::sun::star::uno::XInterface +{ + + /** attempts to establish a database connection. + @param user + the user name + @param password + the password + @returns + the connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection([in]string user, [in]string password) + raises (SQLException); + + /** sets the maximum time in seconds that this data source will wait + while attempting to connect to a database. + + + <p> + A value of zero specifies that the timeout is the default system + timeout if there is one; otherwise, it specifies that there is no timeout. + When a DataSource object is created the login timeout is initially zero. + </p> + @param seconds + the login time limit in seconds + @throws SQLException + if a database access error occurs. + */ + void setLoginTimeout([in]long seconds) + raises (SQLException); + + /** gets the maximum time in seconds that this data source can wait + while attempting to connect to a database. + + + <p> + A value of zero means that the timeout is the default system timeout + if there is one; otherwise, it means that there is no timeout. When a + DataSource object is created the login timeout is initially zero. + </p> + @returns + the login time limit in seconds + @throws SQLException + if a database access error occurs. + */ + long getLoginTimeout() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl new file mode 100644 index 000000000..f1e0f327c --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDatabaseMetaData.idl @@ -0,0 +1,2443 @@ +/* -*- 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_sdbc_XDatabaseMetaData_idl__ +#define __com_sun_star_sdbc_XDatabaseMetaData_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + published interface XConnection; + +/** provides comprehensive information about the database as a whole. + + + <p>Many of the methods here return lists of information in + the form of + com::sun::star::sdbc::XResultSet + objects. + You can use the normal com::sun::star::sdbc::XRow + (or com::sun::star::sdb::XColumn) + methods such as + com::sun::star::sdbc::XRow::getString() + and + com::sun::star::sdbc::XRow::getInt() + to retrieve the data from these XResultSets. If a given form of + metadata is not available, these methods should throw a + com::sun::star::sdbc::SQLException. + After calling one of the getXXX() methods, + one can check whether that value is `NULL` + with the method com::sun::star::sdbc::XRow::wasNull(). + In the text only "(may be `NULL`)" is mentioned for this case. + </p> + <p>Some of these methods take arguments that are String patterns. These + arguments all have names such as fooPattern. Within a pattern String, "%" + means match any substring of 0 or more characters, and "_" means match + any one character. Only metadata entries matching the search pattern + are returned. If a search pattern argument is set to `VOID`, + that argument's criteria will be dropped from the search. + </p> + <p> + A + com::sun::star::sdbc::SQLException + will be thrown if a driver does not support + a metadata method. In the case of methods that return an XResultSet, + either an XResultSet (which may be empty) is returned or a + SQLException is thrown.</p> + */ +published interface XDatabaseMetaData: com::sun::star::uno::XInterface +{ + + /** Can all the procedures returned by getProcedures be called by the + current user? + + @return + `TRUE` + if the user is allowed to call all procedures returned by getProcedures + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean allProceduresAreCallable() raises (SQLException); + + /** Can all the tables returned by getTable be SELECTed by the + current user? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean allTablesAreSelectable() raises (SQLException); + + /** returns the URL for the database connection + */ + string getURL() raises (SQLException); + + /** returns the user name from this database connection. + */ + string getUserName() raises (SQLException); + + /** checks if the database in read-only mode. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isReadOnly() raises (SQLException); + + /** Are NULL values sorted high? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean nullsAreSortedHigh() raises (SQLException); + + /** Are NULL values sorted low? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean nullsAreSortedLow() raises (SQLException); + + /** Are NULL values sorted at the start regardless of sort order? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean nullsAreSortedAtStart() raises (SQLException); + + /** Are NULL values sorted at the end, regardless of sort order? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean nullsAreSortedAtEnd() raises (SQLException); + + /** returns the name of the database product. + */ + string getDatabaseProductName() raises (SQLException); + + /** returns the version of the database product. + */ + string getDatabaseProductVersion() raises (SQLException); + + /** returns the name of the SDBC driver. + */ + string getDriverName() raises (SQLException); + + /** returns the version number of the SDBC driver. + */ + string getDriverVersion() raises (SQLException); + + /** returns the SDBC driver major version number. + */ + long getDriverMajorVersion(); + + /** returns the SDBC driver minor version number. + */ + long getDriverMinorVersion(); + + /** use the database local files to save the tables. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean usesLocalFiles() raises (SQLException); + + /** use the database one local file to save for each table. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean usesLocalFilePerTable() raises (SQLException); + + /** use the database "mixed case unquoted SQL identifiers" case sensitive. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsMixedCaseIdentifiers() raises (SQLException); + + /** Does the database treat mixed case unquoted SQL identifiers as + case insensitive and store them in upper case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesUpperCaseIdentifiers() raises (SQLException); + + /** Does the database treat mixed case unquoted SQL identifiers as + case insensitive and store them in lower case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesLowerCaseIdentifiers() raises (SQLException); + + /** Does the database treat mixed case unquoted SQL identifiers as + case insensitive and store them in mixed case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesMixedCaseIdentifiers() raises (SQLException); + + /** Does the database treat mixed case quoted SQL identifiers as + case sensitive and as a result store them in mixed case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsMixedCaseQuotedIdentifiers() raises (SQLException); + + /** Does the database treat mixed case quoted SQL identifiers as + case insensitive and store them in upper case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesUpperCaseQuotedIdentifiers() raises (SQLException); + + /** Does the database treat mixed case quoted SQL identifiers as + case insensitive and store them in lower case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesLowerCaseQuotedIdentifiers() raises (SQLException); + + /** Does the database treat mixed case quoted SQL identifiers as + case insensitive and store them in mixed case? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean storesMixedCaseQuotedIdentifiers() raises (SQLException); + + /** What's the string used to quote SQL identifiers? + This returns a space " " if identifier quoting is not supported. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getIdentifierQuoteString() raises (SQLException); + + /** gets a comma-separated list of all a database's SQL keywords + that are NOT also SQL92 keywords. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getSQLKeywords() raises (SQLException); + + /** gets a comma-separated list of math functions. These are the + X/Open CLI math function names used in the SDBC function escape + clause. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getNumericFunctions() raises (SQLException); + + /** gets a comma-separated list of string functions. These are the + X/Open CLI string function names used in the SDBC function escape + clause. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getStringFunctions() raises (SQLException); + + /** gets a comma-separated list of system functions. These are the + X/Open CLI system function names used in the SDBC function escape + clause. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getSystemFunctions() raises (SQLException); + + /** gets a comma-separated list of time and date functions. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getTimeDateFunctions() raises (SQLException); + + /** gets the string that can be used to escape wildcard characters. + This is the string that can be used to escape "_" or "%" in + the string pattern style catalog search parameters. + + + <p> + The "_" character represents any single character. + </p> + <p> + The "%" character represents any sequence of zero or + more characters. + </p> + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getSearchStringEscape() raises (SQLException); + + /** gets all the "extra" characters that can be used in unquoted + identifier names (those beyond a-z, A-Z, 0-9 and _). + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getExtraNameCharacters() raises (SQLException); + + /** support the Database "ALTER TABLE" with add column? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsAlterTableWithAddColumn() raises (SQLException); + + /** support the Database "ALTER TABLE" with drop column? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsAlterTableWithDropColumn() raises (SQLException); + + /** support the Database column aliasing? + + + <p> + The SQL AS clause can be used to provide names for + computed columns or to provide alias names for columns as required. + </p> + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsColumnAliasing() raises (SQLException); + + /** are concatenations between NULL and non-NULL values NULL? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean nullPlusNonNullIsNull() raises (SQLException); + + /** `TRUE` + , if the Database supports the CONVERT function between SQL types, + otherwise `FALSE`. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsTypeConversion() raises (SQLException); + + /** `TRUE` + , if the Database supports the CONVERT between the given SQL types + otherwise `FALSE`. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsConvert([in]long fromType, [in]long toType) + raises (SQLException); + + /** Are table correlation names supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsTableCorrelationNames() raises (SQLException); + + /** If table correlation names are supported, are they restricted + to be different from the names of the tables? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsDifferentTableCorrelationNames() + raises (SQLException); + + /** Are expressions in "ORDER BY" lists supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsExpressionsInOrderBy() raises (SQLException); + + /** Can an "ORDER BY" clause use columns not in the SELECT statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsOrderByUnrelated() raises (SQLException); + + /** Is some form of "GROUP BY" clause supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsGroupBy() raises (SQLException); + + /** Can a "GROUP BY" clause use columns not in the SELECT? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsGroupByUnrelated() raises (SQLException); + + /** Can a "GROUP BY" clause add columns not in the SELECT + provided it specifies all the columns in the SELECT? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsGroupByBeyondSelect() raises (SQLException); + + /** Is the escape character in "LIKE" clauses supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsLikeEscapeClause() raises (SQLException); + + /** Are multiple XResultSets from a single execute supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsMultipleResultSets() raises (SQLException); + + /** Can we have multiple transactions open at once (on different + connections)? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsMultipleTransactions() raises (SQLException); + + /** Can columns be defined as non-nullable? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsNonNullableColumns() raises (SQLException); + + /** `TRUE`, if the database supports ODBC Minimum SQL grammar, + otherwise `FALSE`. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsMinimumSQLGrammar() raises (SQLException); + + /** `TRUE`, if the database supports ODBC Core SQL grammar, + otherwise `FALSE`. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCoreSQLGrammar() raises (SQLException); + + /** + `TRUE`, if the database supports ODBC Extended SQL grammar, + otherwise `FALSE`. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsExtendedSQLGrammar() raises (SQLException); + + /** @returns + `TRUE`, if the database supports ANSI92 entry level SQL grammar, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsANSI92EntryLevelSQL() raises (SQLException); + + /** @returns + `TRUE`, if the database supports ANSI92 intermediate SQL grammar, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsANSI92IntermediateSQL() raises (SQLException); + + /** @returns + `TRUE`, if the database supports ANSI92 full SQL grammar, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsANSI92FullSQL() raises (SQLException); + + /** returns + `TRUE`, if the Database supports SQL Integrity Enhancement Facility, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsIntegrityEnhancementFacility() raises (SQLException); + + /** @returns + `TRUE`, if some form of outer join is supported, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsOuterJoins() raises (SQLException); + + /** @returns + `TRUE`, if full nested outer joins are supported, + otherwise `FALSE`. + @throws SQLException + if a database access error occurs. + */ + boolean supportsFullOuterJoins() raises (SQLException); + + /** @returns + `TRUE`, if there is limited support for outer joins. + (This will be `TRUE` if supportFullOuterJoins is `TRUE`.) + `FALSE` is returned otherwise. + @throws SQLException + if a database access error occurs. + */ + boolean supportsLimitedOuterJoins() raises (SQLException); + + /** return the database vendor's preferred term for "schema" + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getSchemaTerm() raises (SQLException); + + /** return the database vendor's preferred term for "procedure" + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getProcedureTerm() raises (SQLException); + + /** return the database vendor's preferred term for "catalog" + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getCatalogTerm() raises (SQLException); + + /** Does a catalog appear at the start of a qualified table name? + (Otherwise it appears at the end) + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isCatalogAtStart() raises (SQLException); + + /** return the separator between catalog and table name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + string getCatalogSeparator() raises (SQLException); + + /** Can a schema name be used in a data manipulation statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSchemasInDataManipulation() raises (SQLException); + + /** Can a schema name be used in a procedure call statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSchemasInProcedureCalls() raises (SQLException); + + /** Can a schema name be used in a table definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSchemasInTableDefinitions() raises (SQLException); + + /** Can a schema name be used in an index definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSchemasInIndexDefinitions() raises (SQLException); + + /** Can a schema name be used in a privilege definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSchemasInPrivilegeDefinitions() + raises (SQLException); + + /** Can a catalog name be used in a data manipulation statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCatalogsInDataManipulation() raises (SQLException); + + /** Can a catalog name be used in a procedure call statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCatalogsInProcedureCalls() raises (SQLException); + + /** Can a catalog name be used in a table definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCatalogsInTableDefinitions() raises (SQLException); + + /** Can a catalog name be used in an index definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCatalogsInIndexDefinitions() raises (SQLException); + + /** Can a catalog name be used in a privilege definition statement? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCatalogsInPrivilegeDefinitions() + raises (SQLException); + + /** Is positioned DELETE supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsPositionedDelete() raises (SQLException); + + /** Is positioned UPDATE supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsPositionedUpdate() raises (SQLException); + + /** Is SELECT for UPDATE supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSelectForUpdate() raises (SQLException); + + /** Are stored procedure calls using the stored procedure escape + syntax supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsStoredProcedures() raises (SQLException); + + /** Are subqueries in comparison expressions supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSubqueriesInComparisons() raises (SQLException); + + /** Are subqueries in "exists" expressions supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSubqueriesInExists() raises (SQLException); + + /** Are subqueries in "in" statements supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSubqueriesInIns() raises (SQLException); + + /** Are subqueries in quantified expressions supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsSubqueriesInQuantifieds() raises (SQLException); + + /** Are correlated subqueries supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsCorrelatedSubqueries() raises (SQLException); + + /** Is SQL UNION supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsUnion() raises (SQLException); + + /** Is SQL UNION ALL supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsUnionAll() raises (SQLException); + + /** Can cursors remain open across commits? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsOpenCursorsAcrossCommit() raises (SQLException); + + /** Can cursors remain open across rollbacks? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsOpenCursorsAcrossRollback() raises (SQLException); + + /** Can statements remain open across commits? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsOpenStatementsAcrossCommit() raises (SQLException); + + /** Can statements remain open across rollbacks? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsOpenStatementsAcrossRollback() + raises (SQLException); + + /** return the maximal number of hex characters in an inline binary literal + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxBinaryLiteralLength() raises (SQLException); + + /** return the max length for a character literal + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxCharLiteralLength() raises (SQLException); + + /** return the limit on column name length + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnNameLength() raises (SQLException); + + /** return the maximum number of columns in a "GROUP BY" clause + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnsInGroupBy() raises (SQLException); + + /** return the maximum number of columns allowed in an index + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnsInIndex() raises (SQLException); + + /** return the maximum number of columns in an "ORDER BY" clause + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnsInOrderBy() raises (SQLException); + + /** return the maximum number of columns in a "SELECT" list + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnsInSelect() raises (SQLException); + + /** return the maximum number of columns in a table + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxColumnsInTable() raises (SQLException); + + /** return the number of active connections at a time to this database. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxConnections() raises (SQLException); + + /** return the maximum cursor name length + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxCursorNameLength() raises (SQLException); + + /** return the maximum length of an index (in bytes) + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxIndexLength() raises (SQLException); + + /** return the maximum length allowed for a schema name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxSchemaNameLength() raises (SQLException); + + /** return the maximum length of a procedure name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxProcedureNameLength() raises (SQLException); + + /** return the maximum length of a catalog name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxCatalogNameLength() raises (SQLException); + + /** return the maximum length of a single row. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxRowSize() raises (SQLException); + + /** Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY + blobs? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean doesMaxRowSizeIncludeBlobs() raises (SQLException); + + /** return the maximum length of a SQL statement + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxStatementLength() raises (SQLException); + + /** return the maximal number of open active statements at one time to this database + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxStatements() raises (SQLException); + + /** return the maximum length of a table name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxTableNameLength() raises (SQLException); + + /** return the maximum number of tables in a SELECT statement + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxTablesInSelect() raises (SQLException); + + /** return the maximum length of a user name + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long getMaxUserNameLength() raises (SQLException); + + /** return the database default transaction isolation level. + The values are defined in + com::sun::star::sdbc::TransactionIsolation. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + @see com::sun::star::sdbc::XConnection + */ + long getDefaultTransactionIsolation() raises (SQLException); + + /** support the Database transactions? + If not, invoking the method + com::sun::star::sdbc::XConnection::commit() + is a noop and the + isolation level is TransactionIsolation_NONE. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsTransactions() raises (SQLException); + + /** Does this database support the given transaction isolation level? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + @see com::sun::star::sdbc::Connection + */ + boolean supportsTransactionIsolationLevel([in]long level) + raises (SQLException); + + /** support the Database both data definition and data manipulation statements + within a transaction? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. +<!-- JRH: Unclear on the intent of these many support questions. + If asking, it should state, "Does the Database support both...? + If declaring, it should state something like the following: + + metadata: supportsDataDefinitionAndDataManipulationTransactions + + "provides support for both data definition and data manipulation statements within a transaction." + --> */ + boolean supportsDataDefinitionAndDataManipulationTransactions() + raises (SQLException); + + /** are only data manipulation statements within a transaction + supported? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsDataManipulationTransactionsOnly() + raises (SQLException); + + /** does a data definition statement within a transaction force the + transaction to commit? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean dataDefinitionCausesTransactionCommit() + raises (SQLException); + + /** is a data definition statement within a transaction ignored? + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean dataDefinitionIgnoredInTransactions() + raises (SQLException); + + /** Gets a description of the stored procedures available in a + catalog. + + + <p> + Only procedure descriptions matching the schema and + procedure name criteria are returned. They are ordered by + PROCEDURE_SCHEM, and PROCEDURE_NAME. + </p> + <p> + Each procedure description has the following columns: + </p> + <ol> + <li> + <b>PROCEDURE_CAT</b> string => procedure catalog (may be `NULL`) + </li> + <li> + <b>PROCEDURE_SCHEM</b> string => procedure schema (may be `NULL`) + </li> + <li> + <b>PROCEDURE_NAME</b> string => procedure name + </li> + <li> reserved for future use + </li> + <li> reserved for future use + </li> + <li> reserved for future use + </li> + <li> + <b>REMARKS</b> string => explanatory comment on the procedure + </li> + <li> + <b>PROCEDURE_TYPE</b> short => kind of procedure: + <ul> + <li> UNKNOWN - May return a result + </li> + <li> NO - Does not return a result + </li> + <li> RETURN - Returns a result + </li> + </ul> + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param procedureNamePattern + a procedure name pattern + @returns + each row is a procedure description + @throws SQLException + if a database access error occurs. + */ + XResultSet getProcedures([in]any catalog, [in]string schemaPattern, + [in]string procedureNamePattern) raises (SQLException); + + /** gets a description of a catalog's stored procedure parameters + and result columns. + + + <p> + Only descriptions matching the schema, procedure and + parameter name criteria are returned. They are ordered by + PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value, + if any, is first. Next are the parameter descriptions in call + order. The column descriptions follow in column number order. + </p> + <p>Each row in the XResultSet is a parameter description or + column description with the following fields: + </p> + <ol> + <li> + <b>PROCEDURE_CAT</b> string => procedure catalog (may be `NULL`) + </li> + <li> + <b>PROCEDURE_SCHEM</b> string => procedure schema (may be `NULL`) + </li> + <li> + <b>PROCEDURE_NAME</b> string => procedure name + </li> + <li> + <b>COLUMN_NAME</b> string => column/parameter name + </li> + <li> + <b>COLUMN_TYPE</b> Short => kind of column/parameter: + <ul> + <li> UNKNOWN - nobody knows + </li> + <li> IN - IN parameter + </li> + <li> INOUT - INOUT parameter + </li> + <li> OUT - OUT parameter + </li> + <li> RETURN - procedure return value + </li> + <li> RESULT - result column in XResultSet + </li> + </ul> + </li> + <li> + <b>DATA_TYPE</b> short => SQL type from java.sql.Types + </li> + <li> + <b>TYPE_NAME</b> string => SQL type name, for a UDT type the + type name is fully qualified + </li> + <li> + <b>PRECISION</b> long => precision + </li> + <li> + <b>LENGTH</b> long => length in bytes of data + </li> + <li> + <b>SCALE</b> short => scale + </li> + <li> + <b>RADIX</b> short => radix + </li> + <li> + <b>NULLABLE</b> short => can it contain NULL? + <ul> + <li> NO_NULLS - does not allow NULL values + </li> + <li> NULLABLE - allows NULL values + </li> + <li> NULLABLE_UNKNOWN - nullability unknown + </li> + </ul> + </li> + <li> + <b>REMARKS</b> string => comment describing parameter/column + </li> + </ol> + <p> + <b>Note:</b> Some databases may not return the column + descriptions for a procedure. Additional columns beyond + REMARKS can be defined by the database. + </p> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param procedureNamePattern + a procedure name pattern + @param columnNamePattern + a column name pattern + @returns + each row describes a stored procedure parameter or column + @throws SQLException + if a database access error occurs. + */ + XResultSet getProcedureColumns([in]any catalog, [in]string schemaPattern, + [in]string procedureNamePattern, + [in]string columnNamePattern) + raises (SQLException); + + /** gets a description of tables available in a catalog. + + + <p>Only table descriptions matching the catalog, schema, table + name, and type criteria are returned. They are ordered by + TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME. + </p> + <p>Each table description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE", + "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", + "LOCAL TEMPORARY", "ALIAS", "SYNONYM". + </li> + <li> + <b>REMARKS</b> string => explanatory comment on the table + </li> + </ol> + <p> + <b>Note:</b> Some databases may not return information for + all tables. + </p> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param tableNamePattern + a table name pattern + @param types + a list of table types to include + @returns + each row is a table description + @throws SQLException + if a database access error occurs. + */ + XResultSet getTables([in]any catalog, [in]string schemaPattern, + [in]string tableNamePattern, [in]sequence<string> types) + raises (SQLException); + + /** Gets the schema names available in this database. The results + are ordered by schema name. + + + <p>The schema column is: + </p> + <ol> + <li> + <b>TABLE_SCHEM</b> string => schema name + </li> + </ol> + @returns + each row has a single String column that is a schema name + @throws SQLException + if a database access error occurs. + */ + XResultSet getSchemas() raises (SQLException); + + /** gets the catalog names available in this database. The results + are ordered by catalog name. + + + <p>The catalog column is: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => catalog name + </li> + </ol> + @returns + each row has a single String column that is a catalog name + @throws SQLException + if a database access error occurs. + */ + XResultSet getCatalogs() raises (SQLException); + + /** gets the table types available in this database. The results + are ordered by table type. + + + <p>The table type is: + </p> + <ol> + <li> + <b>TABLE_TYPE</b> string => table type. Typical types are "TABLE", + "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", + "LOCAL TEMPORARY", "ALIAS", "SYNONYM". + </li> + </ol> + @returns + each row has a single String column that is a table type + @throws SQLException + if a database access error occurs. + */ + XResultSet getTableTypes() raises (SQLException); + + /** gets a description of table columns available in + the specified catalog. + + + <p>Only column descriptions matching the catalog, schema, table + and column name criteria are returned. They are ordered by + TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION. + </p> + <p>Each column description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>COLUMN_NAME</b> string => column name + </li> + <li> + <b>DATA_TYPE</b> short => SQL type from java.sql.Types + </li> + <li> + <b>TYPE_NAME</b> string => Data source dependent type name, + for a UDT the type name is fully qualified + </li> + <li> + <b>COLUMN_SIZE</b> long => column size. For char or date + types this is the maximum number of characters, for numeric or + decimal types this is precision. + </li> + <li> + <b>BUFFER_LENGTH</b> is not used. + </li> + <li> + <b>DECIMAL_DIGITS</b> long => the number of fractional digits + </li> + <li> + <b>NUM_PREC_RADIX</b> long => Radix (typically either 10 or 2) + </li> + <li> + <b>NULLABLE</b> long => is NULL allowed? + <ul> + <li> NO_NULLS - might not allow NULL values + </li> + <li> NULLABLE - definitely allows NULL values + </li> + <li> NULLABLE_UNKNOWN - nullability unknown + </li> + </ul> + </li> + <li> + <b>REMARKS</b> string => comment describing column (may be `NULL`) + </li> + <li> + <b>COLUMN_DEF</b> string => default value (may be `NULL`) + </li> + <li> + <b>SQL_DATA_TYPE</b> long => unused + </li> + <li> + <b>SQL_DATETIME_SUB</b> long => unused + </li> + <li> + <b>CHAR_OCTET_LENGTH</b> long => for char types the + maximum number of bytes in the column + </li> + <li> + <b>ORDINAL_POSITION</b> int => index of column in table + (starting at 1) + </li> + <li> + <b>IS_NULLABLE</b> string => "NO" means column definitely + does not allow NULL values; "YES" means the column might + allow NULL values. An empty string means nobody knows. + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param tableNamePattern + a table name pattern + @param columnNamePattern + a column name pattern + @returns + each row is a column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getColumns([in]any catalog, [in]string schemaPattern, + [in]string tableNamePattern, [in]string columnNamePattern) + raises (SQLException); + + /** gets a description of the access rights for a table's columns. + + + <p> + Only privileges matching the column name criteria are + returned. They are ordered by COLUMN_NAME and PRIVILEGE. + </p> + <p>Each privilege description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>COLUMN_NAME</b> string => column name + </li> + <li> + <b>GRANTOR</b> => granter of access (may be `NULL`) + </li> + <li> + <b>GRANTEE</b> string => grantee of access + </li> + <li> + <b>PRIVILEGE</b> string => name of access (SELECT, + INSERT, UPDATE, REFERENCES, ...) + </li> + <li> + <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted + to grant to others; "NO" if not; `NULL` if unknown + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name ; "" retrieves those without a schema + @param table + a table name + @param columnNamePattern + a column name pattern + @returns + each row is a column privilege description + @throws SQLException + if a database access error occurs. + */ + XResultSet getColumnPrivileges([in]any catalog, [in]string schema, + [in]string table, [in]string columnNamePattern) raises (SQLException); + + /** gets a description of the access rights for each table available + in a catalog. Note that a table privilege applies to one or + more columns in the table. It would be wrong to assume that + this privilege applies to all columns (this may be `TRUE` for + some systems but is not `TRUE` for all.) + + + <p>Only privileges matching the schema and table name + criteria are returned. They are ordered by TABLE_SCHEM, + TABLE_NAME, and PRIVILEGE. + </p> + <p>Each privilege description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>GRANTOR</b> => granter of access (may be `NULL`) + </li> + <li> + <b>GRANTEE</b> string => grantee of access + </li> + <li> + <b>PRIVILEGE</b> string => name of access (SELECT, + INSERT, UPDATE, REFERENCES, ...) + </li> + <li> + <b>IS_GRANTABLE</b> string => "YES" if grantee is permitted + to grant to others; "NO" if not; `NULL` if unknown + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param tableNamePattern + a table name pattern + @returns + each row is a table privilege description + @throws SQLException + if a database access error occurs. + */ + XResultSet getTablePrivileges([in]any catalog, [in]string schemaPattern, + [in]string tableNamePattern) raises (SQLException); + + /** gets a description of a table's optimal set of columns that + uniquely identifies a row. They are ordered by SCOPE. + + + <p>Each column description has the following columns: + </p> + <ol> + <li> + <b>SCOPE</b> short => actual scope of result + <ul> + <li> TEMPORARY - very temporary, while using row + </li> + <li> TRANSACTION - valid for remainder of current transaction + </li> + <li> SESSION - valid for remainder of current session + </li> + </ul> + </li> + <li> + <b>COLUMN_NAME</b> string => column name + </li> + <li> + <b>DATA_TYPE</b> short => SQL data type from java.sql.Types + </li> + <li> + <b>TYPE_NAME</b> string => Data source dependent type name, + for a UDT the type name is fully qualified + </li> + <li> + <b>COLUMN_SIZE</b> long => precision + </li> + <li> + <b>BUFFER_LENGTH</b> long => not used + </li> + <li> + <b>DECIMAL_DIGITS</b> short => scale + </li> + <li> + <b>PSEUDO_COLUMN</b> short => is this a pseudo column + like an Oracle ROWID + <ul> + <li> UNKNOWN - may or may not be pseudo column + </li> + <li> NOT_PSEUDO - is NOT a pseudo column + </li> + <li> PSEUDO - is a pseudo column + </li> + </ul> + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + a table name + @param scope + the scope of interest; use same values as SCOPE + @param nullable + include columns that are nullable? + @returns + each row is a column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getBestRowIdentifier([in]any catalog, [in]string schema, + [in]string table, [in]long scope, [in] boolean nullable) + raises (SQLException); + + /** gets a description of a table's columns that are automatically + updated when any value in a row is updated. They are + unordered. + + + <p>Each column description has the following columns: + </p> + <ol> + <li> + <b>SCOPE</b> short => is not used + </li> + <li> + <b>COLUMN_NAME</b> string => column name + </li> + <li> + <b>DATA_TYPE</b> short => SQL data type from java.sql.Types + </li> + <li> + <b>TYPE_NAME</b> string => Data source dependent type name + </li> + <li> + <b>COLUMN_SIZE</b> long => precision + </li> + <li> + <b>BUFFER_LENGTH</b> long => length of column value in bytes + </li> + <li> + <b>DECIMAL_DIGITS</b> short => scale + </li> + <li> + <b>PSEUDO_COLUMN</b> short => is this a pseudo column + like an Oracle ROWID + <ul> + <li> UNKNOWN - may or may not be pseudo column + </li> + <li> NOT_PSEUDO - is NOT a pseudo column + </li> + <li> PSEUDO - is a pseudo column + </li> + </ul> + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + a table name + @returns + each row is a column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getVersionColumns([in]any catalog, [in]string schema, + [in]string table) raises (SQLException); + + /** gets a description of a table's primary key columns. They + are ordered by COLUMN_NAME. + + + <p>Each primary key column description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>COLUMN_NAME</b> string => column name + </li> + <li> + <b>KEY_SEQ</b> short => sequence number within primary key + </li> + <li> + <b>PK_NAME</b> string => primary key name (may be `NULL`) + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + a table name + @returns + each row is a primary key column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getPrimaryKeys([in]any catalog, [in]string schema, + [in]string table) raises (SQLException); + + /** gets a description of the primary key columns that are + referenced by a table's foreign key columns (the primary keys + imported by a table). They are ordered by PKTABLE_CAT, + PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ. + + + <p>Each primary key column description has the following columns: + </p> + <ol> + <li> + <b>PKTABLE_CAT</b> string => primary key table catalog + being imported (may be `NULL`) + </li> + <li> + <b>PKTABLE_SCHEM</b> string => primary key table schema + being imported (may be `NULL`) + </li> + <li> + <b>PKTABLE_NAME</b> string => primary key table name + being imported + </li> + <li> + <b>PKCOLUMN_NAME</b> string => primary key column name + being imported + </li> + <li> + <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`) + </li> + <li> + <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`) + </li> + <li> + <b>FKTABLE_NAME</b> string => foreign key table name + </li> + <li> + <b>FKCOLUMN_NAME</b> string => foreign key column name + </li> + <li> + <b>KEY_SEQ</b> short => sequence number within foreign key + </li> + <li> + <b>UPDATE_RULE</b> short => What happens to + foreign key when primary is updated: + <ul> + <li> importedNoAction - do not allow update of primary + key if it has been imported + </li> + <li> importedKeyCascade - change imported key to agree + with primary key update + </li> + <li> importedKeySetNull - change imported key to NULL if + its primary key has been updated + </li> + <li> importedKeySetDefault - change imported key to default values + if its primary key has been updated + </li> + <li> importedKeyRestrict - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + </ul> + </li> + <li> + <b>DELETE_RULE</b> short => What happens to + the foreign key when primary is deleted. + <ul> + <li> importedKeyNoAction - do not allow delete of primary + key if it has been imported + </li> + <li> importedKeyCascade - delete rows that import a deleted key + </li> + <li> importedKeySetNull - change imported key to NULL if + its primary key has been deleted + </li> + <li> importedKeyRestrict - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + <li> importedKeySetDefault - change imported key to default if + its primary key has been deleted + </li> + </ul> + </li> + <li> + <b>FK_NAME</b> string => foreign key name (may be `NULL`) + </li> + <li> + <b>PK_NAME</b> string => primary key name (may be `NULL`) + </li> + <li> + <b>DEFERRABILITY</b> short => can the evaluation of foreign key + constraints be deferred until commit + <ul> + <li> importedKeyInitiallyDeferred - see SQL92 for definition + </li> + <li> importedKeyInitiallyImmediate - see SQL92 for definition + </li> + <li> importedKeyNotDeferrable - see SQL92 for definition + </li> + </ul> + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + a table name + @returns + each row is a primary key column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getImportedKeys([in]any catalog, [in]string schema, + [in]string table) raises (SQLException); + + /** gets a description of the foreign key columns that reference a + table's primary key columns (the foreign keys exported by a + table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, + FKTABLE_NAME, and KEY_SEQ. + + + <p>Each foreign key column description has the following columns: + </p> + <ol> + <li> + <b>PKTABLE_CAT</b> string => primary key table catalog (may be `NULL`) + </li> + <li> + <b>PKTABLE_SCHEM</b> string => primary key table schema (may be `NULL`) + </li> + <li> + <b>PKTABLE_NAME</b> string => primary key table name + </li> + <li> + <b>PKCOLUMN_NAME</b> string => primary key column name + </li> + <li> + <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`) + being exported (may be `NULL`) + </li> + <li> + <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`) + being exported (may be `NULL`) + </li> + <li> + <b>FKTABLE_NAME</b> string => foreign key table name + being exported + </li> + <li> + <b>FKCOLUMN_NAME</b> string => foreign key column name + being exported + </li> + <li> + <b>KEY_SEQ</b> short => sequence number within foreign key + </li> + <li> + <b>UPDATE_RULE</b> short => What happens to + foreign key when primary is updated: + <ul> + <li> NO_ACTION - do not allow update of primary + key if it has been imported + </li> + <li> CASCADE - change imported key to agree + with primary key update + </li> + <li> SET_NULL - change imported key to NULL if + its primary key has been updated + </li> + <li> SET_DEFAULT - change imported key to default values + if its primary key has been updated + </li> + <li> RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + </ul> + </li> + <li> + <b>DELETE_RULE</b> short => What happens to + the foreign key when primary is deleted. + <ul> + <li> NO_ACTION - do not allow delete of primary + key if it has been imported + </li> + <li> CASCADE - delete rows that import a deleted key + </li> + <li> SET_NULL - change imported key to NULL if + its primary key has been deleted + </li> + <li> RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + <li> SET_DEFAULT - change imported key to default if + its primary key has been deleted + </li> + </ul> + </li> + <li> + <b>FK_NAME</b> string => foreign key name (may be `NULL`) + </li> + <li> + <b>PK_NAME</b> string => primary key name (may be `NULL`) + </li> + <li> + <b>DEFERRABILITY</b> short => can the evaluation of foreign key + constraints be deferred until commit + <ul> + <li> INITIALLY_DEFERRED - see SQL92 for definition + </li> + <li> INITIALLY_IMMEDIATE - see SQL92 for definition + </li> + <li> NONE - see SQL92 for definition + </li> + </ul> + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + a table name + @returns + each row is a foreign key column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getExportedKeys([in]any catalog, [in]string schema, + [in]string table) raises (SQLException); + + /** gets a description of the foreign key columns in the foreign key + table that reference the primary key columns of the primary key + table (describe how one table imports another's key.) This + should normally return a single foreign key/primary key pair + (most tables only import a foreign key from a table once.). They + are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and + KEY_SEQ. + + + <p>Each foreign key column description has the following columns: + </p> + <ol> + <li> + <b>PKTABLE_CAT</b> string => primary key table catalog (may be `NULL`) + </li> + <li> + <b>PKTABLE_SCHEM</b> string => primary key table schema (may be `NULL`) + </li> + <li> + <b>PKTABLE_NAME</b> string => primary key table name + </li> + <li> + <b>PKCOLUMN_NAME</b> string => primary key column name + </li> + <li> + <b>FKTABLE_CAT</b> string => foreign key table catalog (may be `NULL`) + being exported (may be `NULL`) + </li> + <li> + <b>FKTABLE_SCHEM</b> string => foreign key table schema (may be `NULL`) + being exported (may be `NULL`) + </li> + <li> + <b>FKTABLE_NAME</b> string => foreign key table name + being exported + </li> + <li> + <b>FKCOLUMN_NAME</b> string => foreign key column name + being exported + </li> + <li> + <b>KEY_SEQ</b> short => sequence number within foreign key + </li> + <li> + <b>UPDATE_RULE</b> short => What happens to + foreign key when primary is updated: + <ul> + <li> NO_ACTION - do not allow update of primary + key if it has been imported + </li> + <li> CASCADE - change imported key to agree + with primary key update + </li> + <li> SET_NULL - change imported key to NULL if + its primary key has been updated + </li> + <li> SET_DEFAULT - change imported key to default values + if its primary key has been updated + </li> + <li> RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + </ul> + </li> + <li> + <b>DELETE_RULE</b> short => What happens to + the foreign key when primary is deleted. + <ul> + <li> NO_ACTION - do not allow delete of primary + key if it has been imported + </li> + <li> CASCADE - delete rows that import a deleted key + </li> + <li> SET_NULL - change imported key to NULL if + its primary key has been deleted + </li> + <li> RESTRICT - same as importedKeyNoAction + (for ODBC 2.x compatibility) + </li> + <li> SET_DEFAULT - change imported key to default if + its primary key has been deleted + </li> + </ul> + </li> + <li> + <b>FK_NAME</b> string => foreign key name (may be `NULL`) + </li> + <li> + <b>PK_NAME</b> string => primary key name (may be `NULL`) + </li> + <li> + <b>DEFERRABILITY</b> short => can the evaluation of foreign key + constraints be deferred until commit + <ul> + <li> INITIALLY_DEFERRED - see SQL92 for definition + </li> + <li> INITIALLY_IMMEDIATE - see SQL92 for definition + </li> + <li> NONE - see SQL92 for definition + </li> + </ul> + </li> + </ol> + @param primaryCatalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param primarySchema + a schema name; "" retrieves those without a schema + @param primaryTable + the table name that exports the key + @param foreignCatalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param foreignSchema + a schema name; "" retrieves those without a schema + @param foreignTable + the table name that imports the key + @returns + each row is a foreign key column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getCrossReference( + [in]any primaryCatalog, [in]string primarySchema, + [in]string primaryTable, + [in]any foreignCatalog, [in]string foreignSchema, + [in]string foreignTable) raises (SQLException); + + /** gets a description of all the standard SQL types supported by + this database. They are ordered by DATA_TYPE and then by how + closely the data type maps to the corresponding SDBC SQL type. + + + + <p>Each type description has the following columns: + </p> + <ol> + <li> + <b>TYPE_NAME</b> string => Type name + </li> + <li> + <b>DATA_TYPE</b> short => SQL data type from java.sql.Types + </li> + <li> + <b>PRECISION</b> long => maximum precision + </li> + <li> + <b>LITERAL_PREFIX</b> string => prefix used to quote a literal + (may be `NULL`) + </li> + <li> + <b>LITERAL_SUFFIX</b> string => suffix used to quote a literal + (may be `NULL`) + </li> + <li> + <b>CREATE_PARAMS</b> string => parameters used in creating + the type (may be `NULL`) + </li> + <li> + <b>NULLABLE</b> short => can you use NULL for this type? + <ul> + <li> NO_NULLS - does not allow NULL values + </li> + <li> NULLABLE - allows NULL values + </li> + <li> NULLABLE_UNKNOWN - nullability unknown + </li> + </ul> + </li> + <li> + <b>CASE_SENSITIVE</b> boolean=> is it case sensitive? + </li> + <li> + <b>SEARCHABLE</b> short => can you use "WHERE" based on this type: + <ul> + <li> NONE - No support + </li> + <li> CHAR - Only supported with WHERE .. LIKE + </li> + <li> BASIC - Supported except for WHERE .. LIKE + </li> + <li> FULL - Supported for all WHERE .. + </li> + </ul> + </li> + <li> + <b>UNSIGNED_ATTRIBUTE</b> boolean => is it unsigned? + </li> + <li> + <b>FIXED_PREC_SCALE</b> boolean => can it be a money value? + </li> + <li> + <b>AUTO_INCREMENT</b> boolean => can it be used for an + auto-increment value? + </li> + <li> + <b>LOCAL_TYPE_NAME</b> string => localized version of type name + (may be `NULL`) + </li> + <li> + <b>MINIMUM_SCALE</b> short => minimum scale supported + </li> + <li> + <b>MAXIMUM_SCALE</b> short => maximum scale supported + </li> + <li> + <b>SQL_DATA_TYPE</b> long => unused + </li> + <li> + <b>SQL_DATETIME_SUB</b> long => unused + </li> + <li> + <b>NUM_PREC_RADIX</b> long => usually 2 or 10 + </li> + </ol> + @returns + each row is a SQL type description + @throws SQLException + if a database access error occurs. + */ + XResultSet getTypeInfo() raises (SQLException); + + /** gets a description of a table's indices and statistics. They are + ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. + + + <p>Each index column description has the following columns: + </p> + <ol> + <li> + <b>TABLE_CAT</b> string => table catalog (may be `NULL`) + </li> + <li> + <b>TABLE_SCHEM</b> string => table schema (may be `NULL`) + </li> + <li> + <b>TABLE_NAME</b> string => table name + </li> + <li> + <b>NON_UNIQUE</b> boolean => Can index values be non-unique? + `FALSE` when TYPE is tableIndexStatistic + </li> + <li> + <b>INDEX_QUALIFIER</b> string => index catalog (may be `NULL`); + `NULL` when TYPE is tableIndexStatistic + </li> + <li> + <b>INDEX_NAME</b> string => index name; `NULL` when TYPE is + tableIndexStatistic + </li> + <li> + <b>TYPE</b> short => index type: + <ul> + <li> 0 - this identifies table statistics that are + returned in conjunction with a table's index descriptions + </li> + <li> CLUSTERED - this is a clustered index + </li> + <li> HASHED - this is a hashed index + </li> + <li> OTHER - this is some other style of index + </li> + </ul> + </li> + <li> + <b>ORDINAL_POSITION</b> short => column sequence number + within index; zero when TYPE is tableIndexStatistic + </li> + <li> + <b>COLUMN_NAME</b> string => column name; `NULL` when TYPE is + tableIndexStatistic + </li> + <li> + <b>ASC_OR_DESC</b> string => column sort sequence, "A" => ascending, + "D" => descending, may be `NULL` if sort sequence is not supported; + `NULL` when TYPE is tableIndexStatistic + </li> + <li> + <b>CARDINALITY</b> long => When TYPE is tableIndexStatistic, then + this is the number of rows in the table; otherwise, it is the + number of unique values in the index. + </li> + <li> + <b>PAGES</b> long => When TYPE is tableIndexStatistic then + this is the number of pages used for the table, otherwise it + is the number of pages used for the current index. + </li> + <li> + <b>FILTER_CONDITION</b> string => Filter condition, if any. + (may be `NULL`) + </li> + </ol> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schema + a schema name; "" retrieves those without a schema + @param table + the table name that exports the key + @param unique + when `TRUE`, return only indices for unique values; when `FALSE`, return indices regardless of whether unique or not + @param approximate + when `TRUE`, result is allowed to reflect approximate or out of data values; when `FALSE`, results are requested to be accurate + @returns + each row is an index column description + @throws SQLException + if a database access error occurs. + */ + XResultSet getIndexInfo([in]any catalog, [in]string schema, [in]string table, + [in]boolean unique, [in]boolean approximate) + raises (SQLException); + + /** Does the database support the given result set type? + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsResultSetType([in]long setType) raises (SQLException); + + /** Does the database support the concurrency type in combination + with the given result set type? + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @param concurrency + defined in + com::sun::star::sdbc::ResultSetConcurrency + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsResultSetConcurrency([in]long setType, + [in]long concurrency) + raises (SQLException); + + /** indicates whether a result set's own updates are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean ownUpdatesAreVisible([in]long setType) raises (SQLException); + + /** indicates whether a result set's own deletes are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean ownDeletesAreVisible([in]long setType) raises (SQLException); + + /** indicates whether a result set's own inserts are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean ownInsertsAreVisible([in]long setType) raises (SQLException); + + /** indicates whether updates made by others are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean othersUpdatesAreVisible([in]long setType) raises (SQLException); + + /** indicates whether deletes made by others are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean othersDeletesAreVisible([in]long setType) raises (SQLException); + + /** indicates whether inserts made by others are visible. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean othersInsertsAreVisible([in]long setType) raises (SQLException); + + /** indicates whether or not a visible row update can be detected by + calling the method + <code>XResultSet.rowUpdated</code>. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean updatesAreDetected([in]long setType) raises (SQLException); + + /** indicates whether or not a visible row delete can be detected by + calling com::sun::star::sdbc::XResultSet::rowDeleted(). + If deletesAreDetected() + returns `FALSE`, then deleted rows are removed from the result set. + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean deletesAreDetected([in]long setType) raises (SQLException); + + /** indicates whether or not a visible row insert can be detected + by calling + com::sun::star::sdbc::XResultSet::rowInserted().() + @param setType + defined in + com::sun::star::sdbc::ResultSetType + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean insertsAreDetected([in]long setType) raises (SQLException); + + /** indicates whether the driver supports batch updates. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean supportsBatchUpdates() raises (SQLException); + + /** Gets a description of the user-defined types defined in a particular + schema. Schema-specific UDTs may have type OBJECT, STRUCT, + or DISTINCT. + + + <p>Only types matching the catalog, schema, type name, and type + criteria are returned. They are ordered by DATA_TYPE, TYPE_SCHEM, + and TYPE_NAME. The type name parameter may be a fully-qualified + name. In this case, the catalog and schemaPattern parameters are + ignored. + </p> + <p>Each type description has the following columns: + </p> + <ol> + <li> + <b>TYPE_CAT</b> string => the type's catalog (may be `NULL`) + </li> + <li> + <b>TYPE_SCHEM</b> string => type's schema (may be `NULL`) + </li> + <li> + <b>TYPE_NAME</b> string => type name + </li> + <li> + <b>CLASS_NAME</b> string => Java class name or service name + </li> + <li> + <b>DATA_TYPE</b> string => type value. + One of OBJECT, STRUCT, or DISTINCT + </li> + <li> + <b>REMARKS</b> string => explanatory comment on the type + </li> + </ol> + <p> + <b>Note:</b> If the driver does not support UDTs, an empty + result set is returned. + </p> + @param catalog + a catalog name; "" retrieves those without a catalog; `VOID` means drop catalog name from the selection criteria + @param schemaPattern + a schema name pattern; "" retrieves those without a schema + @param typeNamePattern + a type name pattern; may be a fully-qualified name + @param types + a list of user-named types to include (OBJECT, STRUCT, or DISTINCT) + @returns + each row is a type description + @throws SQLException + if a database access error occurs. + */ + XResultSet getUDTs([in]any catalog, [in]string schemaPattern, + [in]string typeNamePattern, [in]sequence<long> types) + raises (SQLException); + + /** retrieves the connection that produced this metadata object. + @returns + the Connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection() raises (SQLException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDatabaseMetaData2.idl b/offapi/com/sun/star/sdbc/XDatabaseMetaData2.idl new file mode 100644 index 000000000..591b307d5 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDatabaseMetaData2.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbc_XDatabaseMetaData2_idl__ +#define __com_sun_star_sdbc_XDatabaseMetaData2_idl__ + +#include <com/sun/star/sdbc/XDatabaseMetaData.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + +module com { module sun { module star { module sdbc { + + +/** extends the XDatabaseMetaData interface to allow retrieval of additional + information. + */ +interface XDatabaseMetaData2 : XDatabaseMetaData +{ + /** complements XDatabaseMetaData::getURL by returning the settings which, + upon construction of the connection, have been used besides the connection + URL. + + @see XDriver::connect + */ + sequence< ::com::sun::star::beans::PropertyValue > + getConnectionInfo(); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDriver.idl b/offapi/com/sun/star/sdbc/XDriver.idl new file mode 100644 index 000000000..ee45d105b --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDriver.idl @@ -0,0 +1,163 @@ +/* -*- 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_sdbc_XDriver_idl__ +#define __com_sun_star_sdbc_XDriver_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/sdbc/DriverPropertyInfo.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + published interface XDriverManager; + + +/** is the interface that every driver class must implement. + + + + <p> + Each driver should supply a service that implements + the Driver interface. + + </p> + <p>The DriverManager will try to load as many drivers as it can + find, and then for any given connection request, it will ask each + driver in turn to try to connect to the target URL. + + </p> + <p> + It is strongly recommended that each Driver object should be + small and standalone so that the Driver object can be loaded and + queried without bringing in vast quantities of supporting code. + + </p> + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::XConnection + */ +published interface XDriver: com::sun::star::uno::XInterface +{ + + /** attempts to make a database connection to the given URL. + The driver should return + `NULL` + if it realizes it is the wrong kind + of driver to connect to the given URL. This will be common, as when + the driver manager is asked to connect to a given URL it passes + the URL to each loaded driver in turn. + + + + <p> + The driver should raise a + com::sun::star::sdbc::SQLException + if it is the right + driver to connect to the given URL, but has trouble connecting to + the database. + + </p> + <p> + The info argument can be used to pass arbitrary + string tag/value pairs as connection arguments. + Normally at least "user" and "password" properties should be + included in the Properties. For a JDBC driver also the Java class must + be supplied in the property named JavaDriverClass, and a class path (a + space-separated list of URLs) needed to locate that class can optionally + be supplied in a property named JavaDriverClassPath. + Possible property value names are when supported by the driver: + @see com::sun::star::sdbc::ConnectionProperties + </p> + + @param url + is the URL of the database to which to connect. + @param info + a list of arbitrary string tag/value pairs as connection arguments. Normally at least a "user" and "password" property should be included. + @see com::sun::star::sdbc::ConnectionProperties + @returns + a Connection object that represents a connection to the URL + @throws SQLException + if a database access error occurs + + */ + XConnection connect( + [in]string url, + [in]sequence<com::sun::star::beans::PropertyValue> info) + raises (SQLException); + + /** returns `TRUE` if the driver thinks that it can open a connection + to the given URL. Typically drivers will return `TRUE` if they + understand the subprotocol specified in the URL and `FALSE` if + they do not. + + @param url + is the URL of the database to which to connect. + @returns + `TRUE` if this driver can connect to the given URL. + @throws SQLException + if a database access error occurs. + */ + boolean acceptsURL([in]string url) raises (SQLException); + + /** gets information about the possible properties for this driver. + <p>The getPropertyInfo method is intended to allow a generic GUI tool to + discover what properties it should prompt a human for in order to get + enough information to connect to a database. Note that depending on + the values the human has supplied so far, additional values may become + necessary, so it may be necessary to iterate though several calls + to getPropertyInfo. + @param url + is the URL of the database to which to connect. + @param info + is a proposed list of tag/value pairs that will be sent on + connect open. + @returns + an array of DriverPropertyInfo objects describing possible + properties. This array may be an empty array if no properties + are required. + @throws SQLException + if a database access error occurs. + */ + sequence<DriverPropertyInfo> getPropertyInfo([in]string url, + [in] sequence<com::sun::star::beans::PropertyValue> info) + raises (SQLException); + + /** gets the driver's major version number. Initially this should be 1. + @returns + this driver's major version number + */ + long getMajorVersion(); + + /** gets the driver's minor version number. Initially this should be 0. + @returns + this driver's minor version number. + */ + long getMinorVersion(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDriverAccess.idl b/offapi/com/sun/star/sdbc/XDriverAccess.idl new file mode 100644 index 000000000..c0f907f3b --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDriverAccess.idl @@ -0,0 +1,55 @@ +/* -*- 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_sdbc_XDriverAccess_idl__ +#define __com_sun_star_sdbc_XDriverAccess_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module sdbc { + + published interface XDriver; + + + +/** provides the access of sdbc driver components + @see com::sun::star::sdbc::XDriverManager + @see com::sun::star::sdbc::XDriver + */ +published interface XDriverAccess: com::sun::star::uno::XInterface +{ + + /** get a driver which accepts a given url.@see com::sun::star::sdbc::XDriver::acceptsURL + @param url + a database url of the form sdbc:subprotocol:subname + @returns + a Driver that can connect to the URL + @throws SQLException + if a database access error occurs. + */ + XDriver getDriverByURL([in]string url); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDriverManager.idl b/offapi/com/sun/star/sdbc/XDriverManager.idl new file mode 100644 index 000000000..00f8de420 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDriverManager.idl @@ -0,0 +1,109 @@ +/* -*- 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_sdbc_XDriverManager_idl__ +#define __com_sun_star_sdbc_XDriverManager_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + published interface XDriver; + + +/** is the basic interface for managing a set of SDBC drivers. + + + + <p> + When the method + com::sun::star::sdbc::XDriverManager::getConnection() + is called, + the DriverManager will attempt to + locate a suitable driver. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XConnection + */ +published interface XDriverManager: com::sun::star::uno::XInterface +{ + + /** attempts to establish a connection to the given database URL. + The DriverManager attempts to select an appropriate driver from + the set of registered JDBC/SDBC drivers. + @param url + a database url of the form sdbc:subprotocol:subname + @returns + the Connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection([in]string url) + raises (SQLException); + + /** attempts to establish a connection to the given database URL. + The DriverManager attempts to select an appropriate driver from + the set of registered JDBC/SDBC drivers. + @param url + a database url of the form sdbc:subprotocol:subname + @param info + a list of arbitrary string tag/value pairs as connection arguments; + normally at least a "user" and "password" property should be included + @see com::sun::star::sdbc::ConnectionProperties + @returns + the Connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnectionWithInfo([in]string url, + [in]sequence<com::sun::star::beans::PropertyValue> info) + raises (SQLException); + + /** sets the maximum time in seconds that a driver will wait + while attempting to connect to a database. + @param seconds + the login time limit in seconds + + @throws SQLException + if a database access error occurs. + */ + void setLoginTimeout([in]long seconds); + + /** gets the maximum time in seconds that a driver can wait + when attempting to login to a database. + @returns + the driver login time limit in seconds + + @throws SQLException + if a database access error occurs. + */ + long getLoginTimeout(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDriverManager2.idl b/offapi/com/sun/star/sdbc/XDriverManager2.idl new file mode 100644 index 000000000..8477e1b5d --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDriverManager2.idl @@ -0,0 +1,64 @@ +/* -*- 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_sdbc_XDriverManager2_idl__ +#define __com_sun_star_sdbc_XDriverManager2_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/sdbc/XDriverManager.idl> +#include <com/sun/star/sdbc/XDriverAccess.idl> + +module com { module sun { module star { module sdbc { + +/** is the basic interface for managing a set of SDBC drivers. + + <p> + As part of its initialization, the DriverManager service will + attempt to load the registered drivers. + + </p> + <p> + When the method <code>getConnection</code> is called, + the DriverManager will attempt to + locate a suitable driver. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XConnection + @since LibreOffice 4.0 + */ +published interface XDriverManager2 +{ + + /** is the basic interface for establishing database connections. + */ + interface XDriverManager; + + interface XDriverAccess; + + /** creates an enumeration on all installed / registered drivers. + */ + interface com::sun::star::container::XEnumerationAccess; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl b/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl new file mode 100644 index 000000000..5418267ab --- /dev/null +++ b/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl @@ -0,0 +1,59 @@ +/* -*- 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_sdbc_XGeneratedResultSet_idl__ +#define __com_sun_star_sdbc_XGeneratedResultSet_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + +/** provides a result set which gives access to automatically generated values after a new row was inserted. + + <p>The relative order of columns in the result set returned by getGeneratedValues() must be the same + as the relative order of the same columns as returned when executing a "SELECT * FROM table". This ensures that + clients of this interface can reliably fetch the column values.</p> + + @see com::sun::star::sdbc::Statement + @see com::sun::star::sdbc::PreparedStatement + @since OOo 1.1.2 + */ +published interface XGeneratedResultSet: com::sun::star::uno::XInterface +{ + /** gives access to automatically generated values after a new row was inserted. + @returns + a result set that contains the data produced by the query + @throws SQLException + if a database access error occurs. + */ + XResultSet getGeneratedValues() raises (SQLException); + +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XIsolatedConnection.idl b/offapi/com/sun/star/sdbc/XIsolatedConnection.idl new file mode 100644 index 000000000..5f24abe8b --- /dev/null +++ b/offapi/com/sun/star/sdbc/XIsolatedConnection.idl @@ -0,0 +1,74 @@ +/* -*- 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_sdbc_XIsolatedConnection_idl__ +#define __com_sun_star_sdbc_XIsolatedConnection_idl__ + +#include <com/sun/star/task/XInteractionHandler.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; +/** is used for establishing isolated connections via a factory. + <p> + The XIsolatedConnection allows to create connections which are not shared among others + as it is the case when creating connections in normal way. + </p> + @see com::sun::star::sdb::DataSource + @since OOo 1.1.2 + */ +published interface XIsolatedConnection: com::sun::star::uno::XInterface +{ + /** attempts to establish a database connection. + <p>If information is missing, such as + a user's password, they are completed by user interaction.</p> + @param handler + The handler which ask for the needed information when they are missing. + @returns + A connection which is not shared. + @throws com::sun::star::sdbc::SQLException + when an error occurs. + */ + XConnection + getIsolatedConnectionWithCompletion([in]com::sun::star::task::XInteractionHandler handler) + raises (SQLException); + + /** attempts to establish a database connection. + @param user + The user name. + @param password + The password. + @returns + A connection which is not shared. + @throws com::sun::star::sdbc::SQLException + when an error occurs. + */ + XConnection getIsolatedConnection([in]string user, [in]string password) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XMultipleResults.idl b/offapi/com/sun/star/sdbc/XMultipleResults.idl new file mode 100644 index 000000000..d496243f1 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XMultipleResults.idl @@ -0,0 +1,104 @@ +/* -*- 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_sdbc_XMultipleResults_idl__ +#define __com_sun_star_sdbc_XMultipleResults_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSet; + + +/** is used for inspecting multiple results produced by the execution of a + SQL statement. + + + <p> + Under some (uncommon) situations a single SQL statement may return + multiple result sets and/or update counts. Normally you can ignore + this unless you are (1) executing a stored procedure that you know may + return multiple results or (2) you are dynamically executing an + unknown SQL string. The methods + com::sun::star::sdbc::XMultipleResults::getMoreResults() + , + com::sun::star::sdbc::XMultipleResults::getResultSet() + and + com::sun::star::sdbc::XMultipleResults::getUpdateCount() + let you navigate through multiple results. + + </p> + @see com::sun::star::sdbc::XStatement + @see com::sun::star::sdbc::XPreparedStatement + */ +published interface XMultipleResults: com::sun::star::uno::XInterface +{ + + /** returns the current result as a + com::sun::star::sdbc::ResultSet + object. + This method should be called only once per result. + @returns + the ResultSet object + @throws SQLException + if a database access error occurs. + */ + XResultSet getResultSet() raises (SQLException); + + /** returns the current result as an update count. + + + <p> + If the result is a ResultSet or there are no more results, -1 + is returned. This method should be called only once per result. + </p> + @returns + the current result as an update count. + @throws SQLException + if a database access error occurs. + */ + long getUpdateCount() raises (SQLException); + + /** moves to a Statement's next result. It returns `TRUE` if + this result is a ResultSet. This method also implicitly + closes any current ResultSet obtained with getResultSet. + + <p> + There are no more results when <code>(!getMoreResults() &amp;&amp; + getUpdateCount() == -1)</code>. + + </p> + @returns + `TRUE` if there exists more ResultSet objects + @throws SQLException + if a database access error occurs. + */ + boolean getMoreResults() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XOutParameters.idl b/offapi/com/sun/star/sdbc/XOutParameters.idl new file mode 100644 index 000000000..d378ae5e2 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XOutParameters.idl @@ -0,0 +1,131 @@ +/* -*- 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_sdbc_XOutParameters_idl__ +#define __com_sun_star_sdbc_XOutParameters_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is used to register Out-Parameters for stored procedures. + + + <p> + SDBC provides a stored procedure SQL escape that allows stored procedures + to be called in a standard way for all RDBMSs. This escape syntax has one + form that includes a result parameter and one that does not. If used, the + result parameter must be registered as an OUT parameter. The other parameters + can be used for input, output, or both. Parameters are referred to sequentially, + by number. The first parameter is 1. + </p> + */ +published interface XOutParameters: com::sun::star::uno::XInterface +{ + + /** registers the designated output parameter. This version of + the method + com::sun::star::sdbc::XOutParameters::registerOutParameter() + should be used for a user-named or REF output parameter. Examples + of user-named types include: STRUCT, DISTINCT, OBJECT, and named array + types. + + <p> + Before executing a stored procedure call, you must explicitly + call + com::sun::star::sdbc::XOutParameters::registerOutParameter() + to register the type from + com::sun::star::sdbc::DataType + for each OUT parameter. + <br/> + For a user-named parameter the fully-qualified SQL type name of the + parameter should also be given, while a REF parameter requires that the + fully-qualified type name of the referenced type be given. + An SDBC driver that does not need the type code and type name information + may ignore it. To be portable, however, applications should always provide + these values for user-named and REF parameters. + </p> + <p>Although it is intended for user-named and REF parameters, + this method may be used to register a parameter of any SDBC type. + If the parameter does not have a user-named or REF type, the + typeName parameter is ignored. + </p> + <p> + <b>Note:</b> When reading the value of an out parameter, you + must use the + <code>getXXX</code> + method whose type XXX corresponds to the + parameter's registered SQL type. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param sqlType + the type of the column to register + @param typeName + the name of the type + @throws SQLException + if a database access error occurs. + */ + void registerOutParameter([in]long parameterIndex, [in]long sqlType, + [in]string typeName) + raises (SQLException); + + /** registers the OUT parameter in ordinal position + <code>parameterIndex</code> + to the SDBC type <code>sqlType</code>. All + OUT parameters must be registered before a stored procedure is executed. + + + <p> + The SDBC type specified by + <code>sqlType</code> + for an OUT parameter determines the type that must be used in the + <code>get</code> + method to read the value of that parameter. + This version of + com::sun::star::sdbc::XOutParameters::registerOutParameter() + should be + used when the parameter is of SDBC type + com::sun::star::sdbc::DataType::NUMERIC + or com::sun::star::sdbc::DataType::DECIMAL. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param sqlType + the type of the column to register + @param scale + the scale of the type + @throws SQLException + if a database access error occurs. + </p> + */ + void registerNumericOutParameter([in]long parameterIndex, [in]long sqlType, + [in]long scale) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XParameters.idl b/offapi/com/sun/star/sdbc/XParameters.idl new file mode 100644 index 000000000..6f1beca0a --- /dev/null +++ b/offapi/com/sun/star/sdbc/XParameters.idl @@ -0,0 +1,422 @@ +/* -*- 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_sdbc_XParameters_idl__ +#define __com_sun_star_sdbc_XParameters_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; + + +/** is used for parameter setting, commonly implemented in conjunction with + PreparedStatements. + + + <p> + <b>Note:</b> The setXXX 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 + com::sun::star::sdbc::XParameters::setInt() + should be used. + + </p> + <p> + If arbitrary parameter type conversions are required, the method + com::sun::star::sdbc::XParameters::setObject() + should be used with a target SQL type. + <br/> + <br/> + Example of setting a parameter; + <code>con</code> + is an active connection. + </p> + + @code{.bas} + pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?") + pstmt.setDouble(1, 153833.00) + pstmt.setLong(2, 110592) + @endcode + + @see com::sun::star::sdbc::XPreparedStatement + */ +published interface XParameters: com::sun::star::uno::XInterface +{ + + /** sets the designated parameter to SQL NULL. + */ + void setNull([in]long parameterIndex, + [in]long sqlType) raises (SQLException); + + /** sets the designated parameter to SQL NULL. This version of setNull should + be used for user-named types and REF type parameters. Examples + of user-named types include: STRUCT, DISTINCT, OBJECT, and + named array types. + + + <p> + <b>Note:</b> To be portable, applications must give the + SQL type code and the fully-qualified SQL type name when specifying + a NULL user-defined or REF parameter. In the case of a user-named type + the name is the type name of the parameter itself. For a REF + parameter the name is the type name of the referenced type. If + a SDBC driver does not need the type code or type name information, + it may ignore it. + <br/> + Although it is intended for user-named and Ref parameters, + this method may be used to set a null parameter of any JDBC type. + If the parameter does not have a user-named or REF type, the given + typeName is ignored. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param sqlType + the type of the column to set to `NULL` + @param typeName + the name of the type + @throws SQLException + if a database access error occurs. + */ + void setObjectNull([in]long parameterIndex, + [in]long sqlType, + [in]string typeName) raises (SQLException); + + /** sets the designated parameter to a boolean value. The driver converts this + to a SQL BIT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBoolean([in]long parameterIndex, [in]boolean x) + raises (SQLException); + + /** sets the designated parameter to a byte value. The driver converts this + to a SQL TINYINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setByte([in]long parameterIndex, [in]byte x) raises (SQLException); + + /** sets the designated parameter to a short value. The driver converts this + to a SQL SMALLINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setShort([in]long parameterIndex, [in]short x) raises (SQLException); + + /** sets the designated parameter to a long value. The driver converts this + to a SQL INTEGER value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setInt([in]long parameterIndex, [in]long x) raises (SQLException); + + /** sets the designated parameter to a hyper value. The driver converts this + to a SQL BIGINT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setLong([in]long parameterIndex, [in]hyper x) raises (SQLException); + + /** sets the designated parameter to a float value. The driver converts this + to a SQL FLOAT value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setFloat([in]long parameterIndex, [in]float x) raises (SQLException); + + /** sets the designated parameter to a double value. The driver converts this + to a SQL DOUBLE value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setDouble([in]long parameterIndex, [in]double x) raises (SQLException); + + /** sets the designated parameter to a string value. The driver converts this + to a SQL VARCHAR or LONGVARCHAR value (depending on the argument's + size relative to the driver's limits on VARCHARs) when it sends + it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setString([in]long parameterIndex, [in]string x) raises (SQLException); + + /** sets the designated parameter to a sequence of bytes. The driver converts + this to a SQL VARBINARY or LONGVARBINARY (depending on the + argument's size relative to the driver's limits on VARBINARYs) + when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBytes([in]long parameterIndex, [in]sequence<byte> x) + raises (SQLException); + + /** sets the designated parameter to a date value. The driver converts this + to a SQL DATE value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setDate([in]long parameterIndex, [in]com::sun::star::util::Date x) + raises (SQLException); + + /** sets the designated parameter to a time value. The driver converts this + to a SQL TIME value when it sends it to the database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setTime([in]long parameterIndex, [in]com::sun::star::util::Time x) + raises (SQLException); + + /** sets the designated parameter to a datetime value. The driver + converts this to a SQL TIMESTAMP value when it sends it to the + database. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setTimestamp([in]long parameterIndex, + [in]com::sun::star::util::DateTime x) raises (SQLException); + + /** sets the designated parameter to the given input stream, which will have + the specified number of bytes. + When a very large binary value is input to a LONGVARBINARY or LONGVARCHAR + parameter, it may be more practical to send it via an + com::sun::star::io::XInputStream + . SDBC will read the data from the stream as needed, until it reaches end-of-file. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param length + the number of bytes in the stream + @throws SQLException + if a database access error occurs. + */ + void setBinaryStream([in]long parameterIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** sets the designated parameter to the given input stream, which will have + the specified number of bytes. + When a very large binary value is input to a LONGVARCHAR + parameter, it may be more practical to send it via a + com::sun::star::io::XInputStream + . SDBC will read the data from the stream as needed, until it reaches end-of-file. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param length + the number of characters in the stream + @throws SQLException + if a database access error occurs. + */ + void setCharacterStream([in]long parameterIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** sets the value of a parameter using an any. + + + <p>The given object will be converted to the targetSqlType + before being sent to the database. + If the object has a custom mapping (is of a class implementing SQLData), + the SDBC driver should call its method <code>writeSQL</code> to write it + to the SQL data stream. + If, on the other hand, the object is of a service implementing Ref, Blob, + Clob, Struct, or Array, the driver should pass it to the database as a + value of the corresponding SQL type. + </p> + <p>Note that this method may be used to pass database-specific + abstract data types. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setObject([in]long parameterIndex, [in]any x) + raises (SQLException); + + /** set a value from the Datatype ANY for a parameter. + + + + <p>The given object will be converted to the targetSqlType + before being sent to the database. + If the object has a custom mapping (is of a class implementing SQLData), + the SDBC driver should call its method <code>writeSQL</code> to write it + to the SQL data stream. + If, on the other hand, the object is of a service implementing Ref, Blob, + Clob, Struct, or Array, the driver should pass it to the database as a + value of the corresponding SQL type. + </p> + <p>Note that this method may be used to pass database-specific + abstract data types. + </p> + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @param targetSqlType + the SQL type (as defined in + com::sun::star::sdbc::DataType + ) to be sent to the database. The scale argument may further qualify this type. + @param scale + for + com::sun::star::sdbc::DataType::DECIMAL + or + com::sun::star::sdbc::DataType::NUMERIC + types, this is the number of digits after the decimal point. For all other types, this value will be ignored. + @throws SQLException + if a database access error occurs. + */ + void setObjectWithInfo([in]long parameterIndex, + [in]any x, [in]long targetSqlType, [in]long scale) + raises (SQLException); + + /** sets a REF(&lt;structured-type&gt;) parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setRef ([in]long parameterIndex, [in]XRef x) raises (SQLException); + + /** sets a BLOB parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setBlob ([in]long parameterIndex, [in]XBlob x) raises (SQLException); + + /** sets a CLOB parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setClob ([in]long parameterIndex, [in]XClob x) raises (SQLException); + + /** sets an Array parameter. + @param parameterIndex + the first parameter is 1, the second is 2, ... + @param x + the parameter value + @throws SQLException + if a database access error occurs. + */ + void setArray ([in]long parameterIndex, [in]XArray x) raises (SQLException); + + + /** clears the current parameter values immediately. + + + <p>In general, parameter values remain in force for repeated use of a + Statement. Setting a parameter value automatically clears its + previous value. However, in some cases it is useful to immediately + release the resources used by the current parameter values; this can + be done by calling clearParameters. + </p> + @throws SQLException + if a database access error occurs. + */ + void clearParameters() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XPooledConnection.idl b/offapi/com/sun/star/sdbc/XPooledConnection.idl new file mode 100644 index 000000000..3949c0bc3 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XPooledConnection.idl @@ -0,0 +1,66 @@ +/* -*- 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_sdbc_XPooledConnection_idl__ +#define __com_sun_star_sdbc_XPooledConnection_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + +/** defines a pooled connection which can share an unused connection. + +<!-- JRH: unclear meaning --> + + <p> + PoolConnections are handled by the connection pool. + </p> + <p> + When the method + com::sun::star::sdbc::XPooledConnection::getConnection() + is called, the PooledConnection returns the connection which is pooled. + </p> + + @see com::sun::star::sdbc::XConnection + */ +published interface XPooledConnection: com::sun::star::uno::XInterface +{ + + /** return the connection which is pooled + @returns + the pooled Connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection() + raises (SQLException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XPreparedBatchExecution.idl b/offapi/com/sun/star/sdbc/XPreparedBatchExecution.idl new file mode 100644 index 000000000..1fab832d1 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XPreparedBatchExecution.idl @@ -0,0 +1,73 @@ +/* -*- 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_sdbc_XPreparedBatchExecution_idl__ +#define __com_sun_star_sdbc_XPreparedBatchExecution_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is used for batch execution on PreparedStatements. + + + <p> + A + com::sun::star::sdbc::PreparedStatement + uses one precompiled SQL Statement. In batch execution + it is possible to set collection of parameter settings, which are executed in + one batch job. + </p> + */ +published interface XPreparedBatchExecution: com::sun::star::uno::XInterface +{ + + /** adds a set of parameters to the batch. + @throws SQLException + if a database access error occurs. + */ + void addBatch() raises (SQLException); + + /** makes the set of commands in the current batch empty. + @throws SQLException + if a database access error occurs. + */ + void clearBatch() raises (SQLException); + + /** submits a batch of commands to the database for execution. + @returns + an array of update counts containing one element for each + command in the batch. The array is ordered according to the order in + which commands were inserted into the batch. + @throws SQLException + if a database access error occurs. + */ + sequence<long> executeBatch() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XPreparedStatement.idl b/offapi/com/sun/star/sdbc/XPreparedStatement.idl new file mode 100644 index 000000000..485a68603 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XPreparedStatement.idl @@ -0,0 +1,103 @@ +/* -*- 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_sdbc_XPreparedStatement_idl__ +#define __com_sun_star_sdbc_XPreparedStatement_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + published interface XResultSet; + + +/** provides the possibility of executing 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> + */ +published interface XPreparedStatement: com::sun::star::uno::XInterface +{ + + /** executes the SQL query in this + <code>PreparedStatement</code> + object and returns the result set generated by the query. + @returns + the ResultSet object + @throws SQLException + if a database access error occurs. + */ + XResultSet executeQuery() raises (SQLException); + + /** executes the SQL INSERT, UPDATE or DELETE statement in this + com::sun::star::sdbc::PreparedStatement + object. + <br/> + In addition, SQL statements that return nothing, such as + SQL DDL statements, can be executed. + @returns + either the row count for INSERT, UPDATE or DELETE statements; or 0 for SQL statements that return nothing + @throws SQLException + if a database access error occurs. + */ + long executeUpdate() raises (SQLException); + + /** executes any kind of SQL statement. + + + <p> + Some prepared statements return multiple results; the execute + method handles these complex statements as well as the simpler + form of statements handled by executeQuery and executeUpdate. + </p> + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean execute() raises (SQLException); + + /** returns the + com::sun::star::sdbc::Connection + object + that produced this + com::sun::star::sdbc::Statement + object. + @returns + the Connection object + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XRef.idl b/offapi/com/sun/star/sdbc/XRef.idl new file mode 100644 index 000000000..8f897429e --- /dev/null +++ b/offapi/com/sun/star/sdbc/XRef.idl @@ -0,0 +1,53 @@ +/* -*- 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_sdbc_XRef_idl__ +#define __com_sun_star_sdbc_XRef_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is the reference to a SQL structured type value in the database. A + Ref can be saved to persistent storage. A Ref is dereferenced by + passing it as a parameter to a SQL statement and executing the + statement. + */ +published interface XRef: com::sun::star::uno::XInterface +{ + + /** gets the fully-qualified SQL structured type name of the referenced item. + @returns + the base type name + @throws SQLException + if a database access error occurs. + */ + string getBaseTypeName() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XResultSet.idl b/offapi/com/sun/star/sdbc/XResultSet.idl new file mode 100644 index 000000000..d49e33757 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XResultSet.idl @@ -0,0 +1,310 @@ +/* -*- 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_sdbc_XResultSet_idl__ +#define __com_sun_star_sdbc_XResultSet_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XStatement; + + +/** provides the navigation on a table of data. A + com::sun::star::sdbc::ResultSet + object is usually generated by executing a + com::sun::star::sdbc::Statement. + + + <p> + A ResultSet maintains a cursor pointing to its current row of + data. Initially the cursor is positioned before the first row. + The "next" method moves the cursor to the next row. + </p> + */ +published interface XResultSet: com::sun::star::uno::XInterface +{ + + /** moves the cursor down one row from its current position. + + + <p> + A ResultSet cursor is initially positioned before the first row; the + first call to next makes the first row the current row; the + second call makes the second row the current row, and so on. + </p> + <p>If an input stream is open for the current row, a call + to the method + <code>next</code> + will implicitly close it. + The ResultSet's warning chain is cleared when a new row is read. + </p> + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean next() raises (SQLException); + + /** indicates whether the cursor is before the first row in the result + set. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isBeforeFirst() raises (SQLException); + + /** indicates whether the cursor is after the last row in the result + set. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isAfterLast() raises (SQLException); + + /** indicates whether the cursor is on the first row of the result set. + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isFirst() raises (SQLException); + + /** indicates whether the cursor is on the last row of the result set. + + + <p> + <B> + Note: + </B> + Calling the method + <code>isAtLast</code> + may be expensive because the SDBC driver might need to fetch ahead one row in order + to determine whether the current row is the last row in the result set. + </p> + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isLast() raises (SQLException); + + /** moves the cursor to the front of the result set, just before the + first row. Has no effect if the result set contains no rows. + @throws SQLException + if a database access error occurs. + */ + void beforeFirst() raises (SQLException); + + /** moves the cursor to the end of the result set, just after the last + row. Has no effect if the result set contains no rows. + @throws SQLException + if a database access error occurs. + */ + void afterLast() raises (SQLException); + + /** moves the cursor to the first row in the result set. + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean first() raises (SQLException); + + /** moves the cursor to the last row in the result set. + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean last() raises (SQLException); + + /** retrieves the current row number. The first row is number 1, the + second number 2, and so on. + @returns + the current position + @throws SQLException + if a database access error occurs. + */ + long getRow() raises (SQLException); + + /** moves the cursor to the given row number in the result set. + + + <p> + If the row number is positive, the cursor moves to + the given row number with respect to the + beginning of the result set. The first row is row 1, the second + is row 2, and so on. + </p> + <p> + If the given row number is negative, the cursor moves to + an absolute row position with respect to + the end of the result set. For example, calling + <code>absolute(-1)</code> + positions the + cursor on the last row, + <code>absolute(-2)</code> + indicates the next-to-last row, and so on. + </p> + <p> + An attempt to position the cursor beyond the first/last row in + the result set leaves the cursor before/after the first/last + row, respectively. + </p> + <p> + Note: Calling + <code>absolute(1)</code> + is the same as calling com::sun::star::sdbc::XResultSet::first(). + Calling <code>moveToPosition(-1)</code> is the same as calling + <code>moveToLast()</code>. + </p> + */ + boolean absolute([in] long row ) raises (SQLException); + + /** moves the cursor a relative number of rows, either positive or negative. + + + <p> + Attempting to move beyond the first/last row in the result set + positions the cursor before/after + the first/last row. Calling + <code>relative(0)</code> + is valid, but does not change the cursor position. + </p> + <p> + Note: Calling + <code>relative(1)</code> + is different from calling + com::sun::star::sdbc::XResultSet::next() + because is makes sense to call + <code>next()</code> + when there is no current row, for example, when the cursor is positioned before + the first row or after the last row of the result set. + </p> + @param rows + how many rows should be moved relative to the current row + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean relative([in]long rows) raises (SQLException); + + /** moves the cursor to the previous row in the result set. + + + <p> + Note: + <code>previous()</code> + is not the same as + <code>relative(-1)</code> + because it makes sense to call + <code>previous()</code> + when there is no current row. + </p> + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean previous() raises (SQLException); + + /** refreshes the current row with its most recent value in + the database. Cannot be called when on the insert row. + The + <code>refreshRow</code> + method provides a way for an application to + explicitly tell the SDBC driver to refetch a row(s) from the + database. An application may want to call + <code>refreshRow</code> + when caching or prefetching is being done by the SDBC driver to + fetch the latest value of a row from the database. The SDBC driver + may actually refresh multiple rows at once if the fetch size is + greater than one. + All values are refetched subject to the transaction isolation + level and cursor sensitivity. If + <code>refreshRow</code> + is called after calling + <code>updateXXX</code> + , but before calling + com::sun::star::sdbc::XResultSet::updateRow() + , then the updates made to the row are lost. + Calling the method + <code>refreshRow</code> + frequently will likely slow performance. + @throws SQLException + if a database access error occurs. + */ + void refreshRow() raises (SQLException); + + /** indicates whether the current row has been updated. The value returned + depends on whether or not the result set can detect updates. + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean rowUpdated() raises (SQLException); + + /** indicates whether the current row has had an insertion. The value returned + depends on whether or not the result set can detect visible inserts. + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean rowInserted() raises (SQLException); + + /** indicates whether a row has been deleted. A deleted row may leave + a visible "hole" in a result set. This method can be used to + detect holes in a result set. The value returned depends on whether + or not the result set can detect deletions. + @returns + `TRUE` if successful + @throws SQLException + if a database access error occurs. + */ + boolean rowDeleted() raises (SQLException); + + /** returns the Statement that produced this + com::sun::star::sdbc::ResultSet + object. If the result set was generated some other way, such as by an + com::sun::star::sdbc::XDatabaseMetaData + method, this method returns `NULL`. + @returns + the statement object + @throws SQLException + if a database access error occurs. + */ + com::sun::star::uno::XInterface getStatement() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XResultSetMetaData.idl b/offapi/com/sun/star/sdbc/XResultSetMetaData.idl new file mode 100644 index 000000000..77bf257d7 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XResultSetMetaData.idl @@ -0,0 +1,255 @@ +/* -*- 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_sdbc_XResultSetMetaData_idl__ +#define __com_sun_star_sdbc_XResultSetMetaData_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** can be used to find out about the types and properties + of the columns in a ResultSet. + */ +published interface XResultSetMetaData: com::sun::star::uno::XInterface +{ + + /** returns the number of columns in this ResultSet. + @returns + the column count + @throws SQLException + if a database access error occurs. + */ + long getColumnCount() raises (SQLException); + + /** indicates whether the column is automatically numbered, thus read-only. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isAutoIncrement([in]long column) raises (SQLException); + + /** indicates whether a column's case matters. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isCaseSensitive([in]long column) raises (SQLException); + + /** indicates whether the column can be used in a where clause. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isSearchable([in]long column) raises (SQLException); + + /** indicates whether the column is a cash value. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isCurrency([in]long column) raises (SQLException); + + /** indicates the nullability of values in the designated column.@see com::sun::star::sdbc::ColumnValue + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + long isNullable([in]long column) raises (SQLException); + + /** indicates whether values in the column are signed numbers. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isSigned([in]long column) raises (SQLException); + + /** indicates the column's normal max width in chars. + @param column + the first column is 1, the second is 2, + @returns + the normal maximum number of characters allowed as the width of the designated column + @throws SQLException + if a database access error occurs. + */ + long getColumnDisplaySize([in]long column) raises (SQLException); + + /** gets the suggested column title for use in printouts and + displays. + @param column + the first column is 1, the second is 2, + @returns + the suggested column title + @throws SQLException + if a database access error occurs. + */ + string getColumnLabel([in]long column) raises (SQLException); + + /** gets a column's name. + @param column + the first column is 1, the second is 2, + @returns + the column name + @throws SQLException + if a database access error occurs. + */ + string getColumnName([in]long column) raises (SQLException); + + /** gets a column's table's schema. + @param column + the first column is 1, the second is 2, + @returns + the schema name + @throws SQLException + if a database access error occurs. + */ + string getSchemaName([in]long column) raises (SQLException); + + /** gets a column's number of decimal digits. + @param column + the first column is 1, the second is 2, + @returns + precision + @throws SQLException + if a database access error occurs. + */ + long getPrecision([in]long column) raises (SQLException); + + /** gets a column's number of digits to right of the decimal point. + @param column + the first column is 1, the second is 2, + @returns + scale + @throws SQLException + if a database access error occurs. + */ + long getScale([in]long column) raises (SQLException); + + /** gets a column's table name. + @param column + the first column is 1, the second is 2, + @returns + the table name + @throws SQLException + if a database access error occurs. + */ + string getTableName([in]long column) raises (SQLException); + + /** gets a column's table's catalog name. + @param column + the first column is 1, the second is 2, + @returns + the catalog name + @throws SQLException + if a database access error occurs. + */ + string getCatalogName([in]long column) raises (SQLException); + + /** retrieves a column's SQL type. + @param column + the first column is 1, the second is 2, + @returns + the column type + @throws SQLException + if a database access error occurs. + */ + long getColumnType([in]long column) raises (SQLException); + + /** retrieves a column's database-specific type name. + @param column + the first column is 1, the second is 2, + @returns + the type name + @throws SQLException + if a database access error occurs. + */ + string getColumnTypeName([in]long column) raises (SQLException); + + /** indicates whether a column is definitely not writable. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isReadOnly([in]long column) raises (SQLException); + + /** indicates whether it is possible for a write on the column to succeed. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isWritable([in]long column) raises (SQLException); + + /** indicates whether a write on the column will definitely succeed. + @param column + the first column is 1, the second is 2, + @returns + `TRUE` if so + @throws SQLException + if a database access error occurs. + */ + boolean isDefinitelyWritable([in]long column) raises (SQLException); + + /** returns the fully-qualified name of the service whose instances + are manufactured if the method + com::sun::star::sdbc::XResultSet::.getObject() + is called to retrieve a value from the column. + @param column + the first column is 1, the second is 2, + @returns + the service name + @throws SQLException + if a database access error occurs. + */ + string getColumnServiceName([in]long column) raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XResultSetMetaDataSupplier.idl b/offapi/com/sun/star/sdbc/XResultSetMetaDataSupplier.idl new file mode 100644 index 000000000..b120ca624 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XResultSetMetaDataSupplier.idl @@ -0,0 +1,62 @@ +/* -*- 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_sdbc_XResultSetMetaDataSupplier_idl__ +#define __com_sun_star_sdbc_XResultSetMetaDataSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XResultSetMetaData; + + +/** provides access to the meta data of a result set. + + + <p> + The number, types, and properties of a ResultSet's columns are + provided by the + com::sun::star::sdbc::XResultSetMetaData + interface returned by the + com::sun::star::sdbc::XResultSetMetaDataSupplier::getMetaData() + method. + </p> + */ +published interface XResultSetMetaDataSupplier: com::sun::star::uno::XInterface +{ + + /** retrieves the number, types, and properties of a ResultSet's columns. + @returns + the meta data of the ResultSet. + @throws SQLException + if a database access error occurs. + */ + XResultSetMetaData getMetaData() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XResultSetUpdate.idl b/offapi/com/sun/star/sdbc/XResultSetUpdate.idl new file mode 100644 index 000000000..a6f2ac576 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XResultSetUpdate.idl @@ -0,0 +1,126 @@ +/* -*- 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_sdbc_XResultSetUpdate_idl__ +#define __com_sun_star_sdbc_XResultSetUpdate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** provides the possibility to write changes made on a result set back to + database. + */ +published interface XResultSetUpdate: com::sun::star::uno::XInterface +{ + + /** inserts the contents of the insert row into the result set and + the database. Must be on the insert row when this method is called. + @throws SQLException + if a database access error occurs. + */ + void insertRow() raises (SQLException); + + /** updates the underlying database with the new contents of the + current row. Cannot be called when on the insert row. + @throws SQLException + if a database access error occurs. + */ + void updateRow() raises (SQLException); + + /** deletes the current row from the result set and the underlying + database. Cannot be called when on the insert row. + @throws SQLException + if a database access error occurs. + */ + void deleteRow() raises (SQLException); + + /** cancels the updates made to a row. + + + <p> + This method may be called after calling an + <code>updateXXX</code> + method(s) and before calling + com::sun::star::sdbc::XResultSetUpdate::updateRow() + to rollback the updates made to a row. If no updates have been made or + <code>updateRow</code> + has already been called, then this method has no + effect. + </p> + @throws SQLException + if a database access error occurs. + */ + void cancelRowUpdates() raises (SQLException); + + /** moves the cursor to the insert row. The current cursor position is + remembered while the cursor is positioned on the insert row. + + + <p> + The insert row is a special row associated with an updatable + result set. It is essentially a buffer where a new row may + be constructed by calling the + <code>updateXXX</code> + methods prior to + inserting the row into the result set. + </p> + <p> + Only the + <code>updateXXX</code> + , + <code>getXXX</code> + , + and + com::sun::star::sdbc::XResultSetUpdate::insertRow() + methods may be + called when the cursor is on the insert row. All of the columns in + a result set must be given a value each time this method is + called before calling + <code>insertRow</code> + . The method + <code>updateXXX</code> + must be called before a + <code>getXXX</code> + method can be called on a column value. + </p> + @throws SQLException + if a database access error occurs. + */ + void moveToInsertRow() raises (SQLException); + + /** moves the cursor to the remembered cursor position, usually the + current row. This method has no effect if the cursor is not on the insert + row. + @throws SQLException + if a database access error occurs. + */ + void moveToCurrentRow() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XRow.idl b/offapi/com/sun/star/sdbc/XRow.idl new file mode 100644 index 000000000..9a2912dc4 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XRow.idl @@ -0,0 +1,312 @@ +/* -*- 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_sdbc_XRow_idl__ +#define __com_sun_star_sdbc_XRow_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; + + +/** is used to access data which is collected in a row. + All methods raise a + com::sun::star::sdbc::SQLException + if a database access error occurs. + */ +published interface XRow: com::sun::star::uno::XInterface +{ + + /** reports whether the last column read had a value of SQL NULL. + Note that you must first call getXXX on a column to try to read + its value and then call wasNull() to see if the value read was + SQL NULL. + + @returns + `TRUE` if last column read was SQL NULL and `FALSE` otherwise + @throws SQLException + if a database access error occurs. + */ + boolean wasNull() raises (SQLException); + + /** gets the value of a column in the current row as a string. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + string getString([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as boolean. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + boolean getBoolean([in]long columnIndex) raises (SQLException); + + /** get the value of a column in the current row as a byte. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + byte getByte([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as a short. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + short getShort([in]long columnIndex) raises (SQLException); + + /** get the value of a column in the current row as an integer. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + long getInt([in]long columnIndex) raises (SQLException); + + /** get the value of a column in the current row as a long. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + hyper getLong([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as a float. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + float getFloat([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as a double. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + double getDouble([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as a byte array. + The bytes represent the raw values returned by the driver. + @param columnIndex + the first column is 1, the second is 2, ... + @returns + the column value; if the value is SQL NULL, the result is empty. + @throws SQLException + if a database access error occurs. + */ + sequence<byte> getBytes([in]long columnIndex) raises (SQLException); + + /** gets the value of a column in the current row as a date object. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::Date getDate([in]long columnIndex) + raises (SQLException); + + /** gets the value of a column in the current row as a time object. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::Time getTime([in]long columnIndex) + raises (SQLException); + + /** gets the value of a column in the current row as a datetime object. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::DateTime getTimestamp([in]long columnIndex) + raises (SQLException); + + /** gets the value of a column in the current row as a stream of + uninterpreted bytes. The value can then be read in chunks from the + stream. This method is particularly suitable for retrieving large + LONGVARBINARY values. + + + <p> + <b>Note:</b> All the data in the returned stream must be + read prior to getting the value of any other column. The next + call to a get method implicitly closes the stream. Also, a + stream may return 0 when the method + com::sun::star::io::XInputStream::available() + is called whether there is data + available or not. + </p> + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getBinaryStream([in]long columnIndex) + raises (SQLException); + + /** gets the value of a column in the current row as a stream of + uninterpreted bytes. The value can then be read in chunks from the + stream. This method is particularly suitable for retrieving large + LONGVARBINARY or LONGVARCHAR values. + + + <p> + <b>Note:</b> All the data in the returned stream must be + read prior to getting the value of any other column. The next + call to a get method implicitly closes the stream. Also, a + stream may return 0 when the method + com::sun::star::io::XInputStream::available() + is called whether there is data + available or not. + </p> + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream getCharacterStream([in]long columnIndex) + raises (SQLException); + + /** returns the value of a column in the current row as an object. + This method uses the given + <code>Map</code> + object for the custom mapping of the SQL structure or distinct type + that is being retrieved. + @param columnIndex + the first column is 1, the second is 2, + @param typeMap + the map of types which should be used to get the column value + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + any getObject([in]long columnIndex, + [in]com::sun::star::container::XNameAccess typeMap) + raises (SQLException); + + /** gets a REF(&lt;structured-type&gt;) column value from the current row. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + XRef getRef([in]long columnIndex) raises (SQLException); + + /** gets a BLOB value in the current row. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + XBlob getBlob([in]long columnIndex) raises (SQLException); + + /** gets a CLOB value in the current row of this + <code>ResultSet</code> + object. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + XClob getClob([in]long columnIndex) raises (SQLException); + + /** gets a SQL ARRAY value from the current row of this + <code>ResultSet</code> + object. + @param columnIndex + the first column is 1, the second is 2, + @returns + the column value; if the value is SQL NULL, the result is null + @throws SQLException + if a database access error occurs. + */ + XArray getArray([in]long columnIndex) raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XRowSet.idl b/offapi/com/sun/star/sdbc/XRowSet.idl new file mode 100644 index 000000000..cb647e337 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XRowSet.idl @@ -0,0 +1,74 @@ +/* -*- 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_sdbc_XRowSet_idl__ +#define __com_sun_star_sdbc_XRowSet_idl__ + +#include <com/sun/star/sdbc/XResultSet.idl> + + module com { module sun { module star { module sdbc { + + published interface XRowSetListener; + published interface XConnection; + + +/** enhances the functionality of a result set. It allows implementation of + a special behavior for a result set and notifies an application on + certain row set events such as a change in its value. + + + + <p> + The XRowSet interface is unique in that it is intended to be + a software layer on top of an SDBC driver. Implementations of the + RowSet interface can be provided by anyone. + </p> + */ +published interface XRowSet: XResultSet +{ + + /** populates a row set with data. The description of the data source and + other important information for filling the row set with data. + + @throws SQLException + if a database access error occurs. + */ + void execute() raises (SQLException); + + /** adds the specified listener to receive the events "cursorMoved", + "rowChanged", and "rowSetChanged". + @param listener + the listener which should be registered + */ + void addRowSetListener([in]XRowSetListener listener ); + + /** removes the specified listener. + @param listener + the listener which should be registered + */ + void removeRowSetListener([in]XRowSetListener listener ); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XRowSetListener.idl b/offapi/com/sun/star/sdbc/XRowSetListener.idl new file mode 100644 index 000000000..5eb7afe62 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XRowSetListener.idl @@ -0,0 +1,62 @@ +/* -*- 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_sdbc_XRowSetListener_idl__ +#define __com_sun_star_sdbc_XRowSetListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + + module com { module sun { module star { module sdbc { + + +/** is used for receiving "cursorMoved", "rowChanged", and "rowSetChanged" events + posted by, for example, a row set. + */ +published interface XRowSetListener: com::sun::star::lang::XEventListener +{ + + /** is called when a row set's cursor is moved. + @param event + contains information about the event + */ + void cursorMoved([in]com::sun::star::lang::EventObject event); + + /** is called when a row is inserted, updated, or deleted. + @param event + contains information about the event + @deprecated + @see com::sun::star::sdb::XRowsChangeListener + */ + void rowChanged([in]com::sun::star::lang::EventObject event); + + /** is called when the row set has changed, or in other words, when the row set has + been reexecuted. + @param event + contains information about the event + */ + void rowSetChanged([in]com::sun::star::lang::EventObject event); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XRowUpdate.idl b/offapi/com/sun/star/sdbc/XRowUpdate.idl new file mode 100644 index 000000000..dcc90ed55 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XRowUpdate.idl @@ -0,0 +1,236 @@ +/* -*- 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_sdbc_XRowUpdate_idl__ +#define __com_sun_star_sdbc_XRowUpdate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is used to update data which is collected in a row. + */ +published interface XRowUpdate: com::sun::star::uno::XInterface +{ + + /** gives a nullable column a null value. + @param columnIndex + the position of the column + @throws SQLException + if a database access error occurs. + */ + void updateNull([in]long columnIndex) raises (SQLException); + + /** updates a column with a boolean value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateBoolean([in]long columnIndex, [in]boolean x) raises (SQLException); + + /** updates a column with a byte value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateByte([in]long columnIndex, [in]byte x) raises (SQLException); + + /** updates a column with a short value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateShort([in]long columnIndex, [in]short x) raises (SQLException); + + /** updates a column with an long value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateInt([in]long columnIndex, [in]long x) raises (SQLException); + + /** updates a column with a hyper value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateLong([in]long columnIndex, [in]hyper x) raises (SQLException); + + /** updates a column with a float value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateFloat([in]long columnIndex, [in]float x) raises (SQLException); + + /** updates a column with a double value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateDouble([in]long columnIndex, [in]double x) raises (SQLException); + + /** updates a column with a string value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateString([in]long columnIndex, [in]string x) raises (SQLException); + + /** updates a column with a byte array value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateBytes([in]long columnIndex, [in]sequence<byte> x) raises (SQLException); + + /** updates a column with a date value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateDate([in]long columnIndex, [in]com::sun::star::util::Date x) + raises (SQLException); + + /** updates a column with a time value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateTime([in]long columnIndex, [in]com::sun::star::util::Time x) + raises (SQLException); + + /** updates a column with a timestamp value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateTimestamp([in]long columnIndex, + [in]com::sun::star::util::DateTime x) + raises (SQLException); + + /** updates a column with a stream value. + @param columnIndex + the position of the column + @param x + the new column value + @param length + how much data should be read out of the stream + @throws SQLException + if a database access error occurs. + */ + void updateBinaryStream([in]long columnIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** updates a column with a stream value. + @param columnIndex + the position of the column + @param x + the new column value + @param length + how much data should be read out of the stream + @throws SQLException + if a database access error occurs. + */ + void updateCharacterStream([in]long columnIndex, + [in]com::sun::star::io::XInputStream x, + [in]long length) raises (SQLException); + + /** updates a column with an object value. + @param columnIndex + the position of the column + @param x + the new column value + @throws SQLException + if a database access error occurs. + */ + void updateObject([in]long columnIndex, [in]any x) + raises (SQLException); + + /** updates a column with an object value. + @param columnIndex + the position of the column + @param x + the new column value + @param scale + defines the scale which should be used to write the numeric value + @throws SQLException + if a database access error occurs. + */ + void updateNumericObject([in]long columnIndex, [in]any x, [in]long scale) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XSQLData.idl b/offapi/com/sun/star/sdbc/XSQLData.idl new file mode 100644 index 000000000..b187437d3 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XSQLData.idl @@ -0,0 +1,133 @@ +/* -*- 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_sdbc_XSQLData_idl__ +#define __com_sun_star_sdbc_XSQLData_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XSQLInput; + published interface XSQLOutput; + + +/** is used for the custom mapping of SQL user-defined types. + + + <p> + This interface must be implemented by a service that is + registered in a type mapping. It is expected that this interface + will normally be implemented by a tool. The methods in this interface + are called by the driver and are never called by a programmer + directly. + </p> + */ +published interface XSQLData: com::sun::star::uno::XInterface +{ + + /** returns the fully-qualified name of the SQL user-defined type + that this object represents. + + + <p> + This method is called by the SDBC driver to get the name of the + UDT instance that is being mapped to this instance of SQLData. + </p> + @returns + the name of the SQL type. + @throws SQLException + if a database access error occurs. + */ + string getSQLTypeName() raises (SQLException); + + + /** populates this object with data read from the database. + + + <p> + The implementation of the method must follow this protocol: + <br/> + It must read each of the attributes or elements of the SQL + type from the given input stream. This is done + by calling a method of the input stream to read each + item, in the order that they appear in the SQL definition + of the type. The method + <code>readSQL</code> + then assigns the data to appropriate fields or elements (of this + or other objects). + <br/> + Specifically, it must call the appropriate + <code>XSQLInput.readXXX</code> + method(s) to do the following: + for a Distinct Type, read its single data element; + for a Structured Type, read a value for each attribute of the SQL type. + </p> + <p> + The SDBC driver initializes the input stream with a type map + before calling this method, which is used by the appropriate + <code>SQLInput.readXXX</code> + method on the stream. + </p> + + @param stream + the input SQL data stream + @param typeName + the SQL type of the value on the data stream + @throws SQLException + if a database access error occurs. + + @see com::sun::star::sdbc::XSQLInput + */ + void readSQL([in]XSQLInput stream, [in]string typeName) + raises (SQLException); + + /** writes this object to the given SQL data stream. + + + <p> + The implementation of the method must follow this protocol: + <br/> + It must write each of the attributes of the SQL type to the given output + stream. This is done by calling a method of the output stream to write + each item, in the order that they appear in the SQL definition of the type. + Specifically, it must call the appropriate + <code>XSQLOutput.writeXXX</code> + method(s) to do the following:<br> + for a Distinct Type, write its single data element; + for a Structured Type, write a value for each attribute of the SQL type. + </p> + @param stream + the output SQL data stream + @throws SQLException + if a database access error occurs. + @see com::sun::star::sdbc::XSQLOutput + */ + void writeSQL([in]XSQLOutput stream) raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XSQLInput.idl b/offapi/com/sun/star/sdbc/XSQLInput.idl new file mode 100644 index 000000000..9b3171382 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XSQLInput.idl @@ -0,0 +1,264 @@ +/* -*- 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_sdbc_XSQLInput_idl__ +#define __com_sun_star_sdbc_XSQLInput_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; + + +/** represents an input stream that contains a stream of values representing an + instance of a SQL structured or distinct type. + + + <p> + This interface, used only for custom mapping, is used by the driver + behind the scenes, and a programmer never directly invokes + <code>SQLInput</code> + methods. + </p> + <p> + When the method + <code>getObject</code> + is called with an object of a service implementing the interface + <code>SQLData</code> + , the SDBC driver calls the method + com::sun::star::sdbc::XSQLData::getSQLType() + to determine the SQL type of the user-defined type (UDT) being custom mapped. + The driver creates an instance of + com::sun::star::sdbc::XSQLInput + , + populating it with the attributes of the UDT. The driver then passes the input + stream to the method + com::sun::star::sdbc::XSQLData::readSQL() + , which in turn calls the + <code>XSQLInput.readXXX</code> + methods in its implementation for reading the attributes from the input stream. + </p> + */ +published interface XSQLInput: com::sun::star::uno::XInterface +{ + + /** reads the next attribute in the stream as string. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + string readString() raises (SQLException); + + /** reads the next attribute in the stream as boolean. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + boolean readBoolean() raises (SQLException); + + /** reads the next attribute in the stream as byte. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + byte readByte() raises (SQLException); + + /** reads the next attribute in the stream as short. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + short readShort() raises (SQLException); + + /** reads the next attribute in the stream as long. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + long readInt() raises (SQLException); + + /** reads the next attribute in the stream as hyper. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + hyper readLong() raises (SQLException); + + /** reads the next attribute in the stream as float. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + float readFloat() raises (SQLException); + + /** reads the next attribute in the stream as double. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + double readDouble() raises (SQLException); + + /** reads the next attribute in the stream as sequence of bytes. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + sequence<byte> readBytes() raises (SQLException); + + /** reads the next attribute in the stream as date. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::Date readDate() raises (SQLException); + + /** reads the next attribute in the stream as time. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::Time readTime() raises (SQLException); + + /** reads the next attribute in the stream as datetime. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + com::sun::star::util::DateTime readTimestamp() raises (SQLException); + + /** reads the next attribute in the stream as sequence of bytes. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream readBinaryStream() raises (SQLException); + + /** reads the next attribute in the stream as a Unicode string. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + com::sun::star::io::XInputStream readCharacterStream() raises (SQLException); + + /** returns the datum at the head of the stream as an any. + + + <p> + The actual type of the any returned is determined by the default + type mapping, and any customizations present in this stream's type map. + + <br/> + A type map is registered with the stream by the SDBC driver before the + stream is passed to the application. + + <br/> + When the datum at the head of the stream is a SQL NULL, + the method returns `VOID`. If the datum is a SQL structured or distinct + type, it determines the SQL type of the datum at the head of the stream, + constructs an object of the appropriate service, and calls the method + com::sun::star::sdbc::XSQLData::readSQL() + on that object, which reads additional data + from the stream using the protocol described for that method. + + </p> + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + any readObject() raises (SQLException); + + /** reads a REF(&lt;structured-type&gt;) from the stream. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + XRef readRef() raises (SQLException); + + /** reads a BLOB from the stream. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + XBlob readBlob() raises (SQLException); + + /** reads a CLOB from the stream. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + XClob readClob() raises (SQLException); + + /** reads an array from the stream. + @returns + the attribute; if the value is SQL NULL, return null. + @throws SQLException + if a database access error occurs. + */ + XArray readArray() raises (SQLException); + + /** determines whether the last value read was null. + @returns + `TRUE` if the most recently gotten SQL value was null; otherwise, `FALSE` + @throws SQLException + if a database access error occurs. + */ + boolean wasNull() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XSQLOutput.idl b/offapi/com/sun/star/sdbc/XSQLOutput.idl new file mode 100644 index 000000000..c454ecaee --- /dev/null +++ b/offapi/com/sun/star/sdbc/XSQLOutput.idl @@ -0,0 +1,274 @@ +/* -*- 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_sdbc_XSQLOutput_idl__ +#define __com_sun_star_sdbc_XSQLOutput_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/util/Date.idl> + +#include <com/sun/star/util/DateTime.idl> + +#include <com/sun/star/util/Time.idl> + + module com { module sun { module star { module io { + published interface XInputStream; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XRef; + published interface XArray; + published interface XBlob; + published interface XClob; + published interface XStruct; + published interface XSQLData; + + +/** is used as an output stream for writing the attributes of a user-defined + type back to the database. This interface, used only for custom mapping, + is used by the driver, and its methods are never directly invoked + by a programmer. + + + <p> + When an object of a class implementing interface + com::sun::star::sdbc::XSQLData + is passed as an argument to a SQL statement, the JDBC driver calls + com::sun::star::sdbc::SQLData::getSQLType() + to determine the kind of SQL datum being passed to the database. + <br/> + The driver then creates an instance of + <code>XSQLOutput</code> + and passes it to the method + com::sun::star::sdbc::XSQLData::writeSQL() + . The method + <code>writeSQL</code> + in turn calls the appropriate + <code>XSQLOutput.writeXXX</code> + methods to write data from the + com::sun::star::sdbc::XSQLData + object to the + <code>XSQLOutput</code> + output stream as the representation of a SQL user-defined type.</p> + */ +published interface XSQLOutput: com::sun::star::uno::XInterface +{ + + /** writes the next attribute to the stream as a string. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeString([in]string x) raises (SQLException); + + /** writes the next attribute to the stream as boolean. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeBoolean([in]boolean x) raises (SQLException); + + /** writes the next attribute to the stream as byte. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeByte([in]byte x) raises (SQLException); + + /** writes the next attribute to the stream as short. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeShort([in]short x) raises (SQLException); + + /** writes the next attribute to the stream as long. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeInt([in]long x) raises (SQLException); + + /** writes the next attribute to the stream as hyper. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeLong([in]hyper x) raises (SQLException); + + /** writes the next attribute to the stream as float. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeFloat([in]float x) raises (SQLException); + + /** writes the next attribute to the stream as double. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeDouble([in]double x) raises (SQLException); + + /** writes the next attribute to the stream as byte sequence. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeBytes([in]sequence<byte> x) raises (SQLException); + + /** writes the next attribute to the stream as a date. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeDate([in]com::sun::star::util::Date x) raises (SQLException); + + /** writes the next attribute to the stream as a time. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeTime([in]com::sun::star::util::Time x) raises (SQLException); + + /** writes the next attribute to the stream as a datetime. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeTimestamp([in]com::sun::star::util::DateTime x) + raises (SQLException); + + /** writes the next attribute to the stream as a stream of uninterpreted + bytes. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeBinaryStream([in]com::sun::star::io::XInputStream x) + raises (SQLException); + + /** writes the next attribute to the stream as a stream of Unicode string. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeCharacterStream([in]com::sun::star::io::XInputStream x) + raises (SQLException); + + /** writes to the stream the data contained in the given + <code>XSQLData</code> object. + + + <p + >When the + <code>XSQLData</code> + object is + `NULL` + , this method writes an SQL NULL to the stream. + Otherwise, it calls the + com::sun::star::sdbc::XSQLData::writeSQL() + method of the given object, which + writes the object's attributes to the stream. + The implementation of the method + <code>XSQLData::writeSQL()</code> + calls the appropriate + <code>XSQLOutput.writeXXX</code> + method(s) for writing each of the object's attributes in order. + <br/> + The attributes must be read from an + com::sun::star::sdbc::XSQLInput + input stream and written to an + <code>XSQLOutput</code> + output stream in the same order in which they were + listed in the SQL definition of the user-defined type. + </p> + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeObject([in]XSQLData x) raises (SQLException); + + /** writes a REF(&lt;structured-type&gt;) to the stream. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeRef([in]XRef x) raises (SQLException); + + /** writes a BLOB to the stream. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeBlob([in]XBlob x) raises (SQLException); + + /** writes a CLOB to the stream. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeClob([in]XClob x) raises (SQLException); + + /** writes a structured-type to the stream. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeStruct([in]XStruct x) raises (SQLException); + + /** writes an array to the stream. + @param x + the value to pass to the database. + @throws SQLException + if a database access error occurs. + */ + void writeArray([in]XArray x) raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XStatement.idl b/offapi/com/sun/star/sdbc/XStatement.idl new file mode 100644 index 000000000..4d0ac4bad --- /dev/null +++ b/offapi/com/sun/star/sdbc/XStatement.idl @@ -0,0 +1,128 @@ +/* -*- 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_sdbc_XStatement_idl__ +#define __com_sun_star_sdbc_XStatement_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + published interface XConnection; + published interface XResultSet; + + +/** is used for executing a static SQL statement and obtaining the results + produced by it. + + + + <p> + Only one ResultSet per Statement 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 interface XStatement: com::sun::star::uno::XInterface +{ + + /** executes a SQL statement that returns a single ResultSet. + @param sql + the SQL statement which should be executed + @returns + a ResultSet that contains the data produced by the query; never `NULL` + @throws SQLException + if a database access error occurs. + */ + XResultSet executeQuery([in]string sql) raises (SQLException); + + /** executes an SQL INSERT, UPDATE, or DELETE statement. In addition, + SQL statements that return nothing, such as SQL DDL statements, + can be executed. + + @param sql + a SQL INSERT, UPDATE or DELETE statement or a SQL statement that returns nothing + @returns + either the row count for INSERT, UPDATE or DELETE or 0 for SQL statements that return nothing + @throws SQLException + if a database access error occurs. + */ + long executeUpdate([in]string sql) raises (SQLException); + + /** executes a SQL statement that may return multiple results. + + + <p> + Under some (uncommon) situations a single SQL statement may return + multiple result sets and/or update counts. Normally you can ignore + this unless you are (1) executing a stored procedure that you know may + return multiple results or (2) you are dynamically executing an + unknown SQL string. The navigation through multiple results is covered by + com::sun::star::sdbc::XMultipleResults. + </p> + <p> + The + <code>execute</code> + method executes a SQL statement and indicates + the form of the first result. You can then use + com::sun::star::sdbc::XMultipleResults::getResultSet() + or + com::sun::star::sdbc::XMultipleResults::getUpdateCount() + to retrieve the result, and + com::sun::star::sdbc::XMultipleResults::getMoreResults() + to move to any subsequent result(s). + </p> + + @param sql + any SQL statement + @returns + `TRUE` if the next result is a ResultSet; `FALSE` if it is an update count or there are no more results + @throws SQLException + if a database access error occurs. + */ + boolean execute([in]string sql) raises (SQLException); + + /** returns the + com::sun::star::sdbc::Connection + object + that produced this + <code>Statement</code> + object. + @returns + the connection that produced this statement + + @throws SQLException + if a database access error occurs. + */ + XConnection getConnection() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XStruct.idl b/offapi/com/sun/star/sdbc/XStruct.idl new file mode 100644 index 000000000..7b512d5ea --- /dev/null +++ b/offapi/com/sun/star/sdbc/XStruct.idl @@ -0,0 +1,99 @@ +/* -*- 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_sdbc_XStruct_idl__ +#define __com_sun_star_sdbc_XStruct_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module container { + published interface XNameAccess; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + + +/** is used for the standard mapping for a SQL structured type. + + + <p> + A + <code>Struct</code> + object contains a value for each attribute + of the SQL structured type that it represents. + By default, an instance of + <code>Struct</code> + is valid as long as the + application has a reference to it. + </p> + */ +published interface XStruct: com::sun::star::uno::XInterface +{ + + /** retrieves the SQL type name of the SQL structured type + that this + <code>Struct</code> + object represents. + @returns + the name of the SQL type. + @throws SQLException + if a database access error occurs. + */ + string getSQLTypeName() raises (SQLException); + + + /** produces the ordered values of the attributes of the SQL + structured type that this + <code>Struct</code> + object represents. + <p> + This method uses the given type map for customizations of the type + mappings. If there is no entry in the given type map that matches or + the given type map is + `NULL` + , the structured type that this + <code>Struct</code> + object represents, the driver uses + the connection type mapping. + @param typeMap + is a map object that contains mappings of SQL type names to + services. If the + <code>typeMap</code>is + `NULL` + , the type-map + associated with the connection for customizations of the type-mappings + is used. + @returns + an array containing the ordered attribute values. + @throws SQLException + if a database access error occurs. + */ + sequence<any> getAttributes([in]com::sun::star::container::XNameAccess typeMap) + raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XWarningsSupplier.idl b/offapi/com/sun/star/sdbc/XWarningsSupplier.idl new file mode 100644 index 000000000..9f06ff650 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XWarningsSupplier.idl @@ -0,0 +1,70 @@ +/* -*- 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_sdbc_XWarningsSupplier_idl__ +#define __com_sun_star_sdbc_XWarningsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLWarning.idl> + + module com { module sun { module star { module sdbc { + + +/** should be implemented of objects which may report warnings or non critical + errors. + @see com::sun::star::sdbc::SQLWarning + */ +published interface XWarningsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the first warning reported by calls on an object that supports + the usage of warnings. + + <p> + <b>Note:</b> Subsequent warnings will be chained to this + com::sun::star::sdbc::SQLWarning. + </p> + @returns + the warnings + @throws SQLException + if a database access error occurs. + */ + any getWarnings() raises (SQLException); + + + /** clears all warnings reported for the object implementing the interface. + After a call to this method, the method + com::sun::star::sdbc::XWarningsSupplier::getWarnings() + returns + `VOID` + until a new warning is reported for the object. + @throws SQLException + if a database access error occurs. + */ + void clearWarnings() raises (SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/CheckOption.idl b/offapi/com/sun/star/sdbcx/CheckOption.idl new file mode 100644 index 000000000..d18036764 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/CheckOption.idl @@ -0,0 +1,52 @@ +/* -*- 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_sdbcx_CheckOption_idl__ +#define __com_sun_star_sdbcx_CheckOption_idl__ + + module com { module sun { module star { module sdbcx { + + +/** determines the check option for a view. + */ +published constants CheckOption +{ + + /** indicates that no value checking is applied during updates of + view data. + */ + const long NONE = 0; + + /** indicates that the value checking is applied for the view and all base + views. + */ + const long CASCADE = 2; + + /** indicates that the value checking is applied only for the view. + */ + const long LOCAL = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Column.idl b/offapi/com/sun/star/sdbcx/Column.idl new file mode 100644 index 000000000..254ac016a --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Column.idl @@ -0,0 +1,116 @@ +/* -*- 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_sdbcx_Column_idl__ +#define __com_sun_star_sdbcx_Column_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XDataDescriptorFactory; + + +/** describes the common properties of a database column. + */ +published service Column +{ + + /** optional, could be used to copy a database column. + */ + [optional] interface XDataDescriptorFactory; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the column. + */ + [readonly, property] string Name; + + + /** is the + com::sun::star::sdbc::DataType + of the column. + */ + [readonly, property] long Type; + + + /** is the type name used by the database. If the column type is + a user-defined type, then a fully-qualified type name is returned. + <b> + Note: + </b> + May be empty. + */ + [readonly, property] string TypeName; + + + /** gets a column's number of decimal digits. + */ + [readonly, property] long Precision; + + + /** gets a column's number of digits to right of the decimal point. + */ + [readonly, property] long Scale; + + + /** indicates the nullability of values in the designated column. + @see com::sun::star::sdbc::ColumnValue + */ + [readonly, property] long IsNullable; + + + /** indicates whether the column is automatically numbered, thus read-only. + @see com::sun::star::sdbc::ColumnValue + */ + [readonly, property] boolean IsAutoIncrement; + + + /** indicates whether the column is a cash value. + */ + [readonly, property] boolean IsCurrency; + + + + /** indicates that the column contains some kind of time or date stamp + used to track updates. + */ + [optional, readonly, property] boolean IsRowVersion; + + + /** keeps a description of the object. + */ + [optional, readonly, property] string Description; + + + /** keeps a default value for a column, is provided as string. + */ + [optional, readonly, property] string DefaultValue; + +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/ColumnDescriptor.idl b/offapi/com/sun/star/sdbcx/ColumnDescriptor.idl new file mode 100644 index 000000000..3d3dafc8e --- /dev/null +++ b/offapi/com/sun/star/sdbcx/ColumnDescriptor.idl @@ -0,0 +1,98 @@ +/* -*- 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_sdbcx_ColumnDescriptor_idl__ +#define __com_sun_star_sdbcx_ColumnDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + +/** describes the common properties of a database column. Could be used for the creation + of a database columns within a table. + @see com::sun::star::sdbcx::Column + @see com::sun::star::sdbcx::Table + */ +published service ColumnDescriptor +{ + service com::sun::star::sdbcx::Descriptor; + + + /** is the + com::sun::star::sdbc::DataType + of the column. + */ + [property] long Type; + + + /** is the type name used by the database. If the column type is + a user-defined type, then a fully-qualified type name is returned. + May be empty. + */ + [property] string TypeName; + + + /** gets a column's number of decimal digits. + */ + [property] long Precision; + + + /** gets a column's number of digits to right of the decimal point. + */ + [property] long Scale; + + + /** indicates the nullability of values in the designated column. + @see com::sun::star::sdbc::ColumnValue + */ + [property] long IsNullable; + + + /** indicates whether the column is automatically numbered, thus read-only. + @see com::sun::star::sdbc::ColumnValue + */ + [property] boolean IsAutoIncrement; + + + /** indicates that the column contains some kind of time or date stamp + used to track updates. + */ + [optional, property] boolean IsRowVersion; + + + /** keeps a description of the object. + */ + [optional, property] string Description; + + + /** keeps a default value for a column, is provided as string. + */ + [optional, property] string DefaultValue; + + /** specifies how to create an auto-increment column. + */ + [optional, property] string AutoIncrementCreation; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/CompareBookmark.idl b/offapi/com/sun/star/sdbcx/CompareBookmark.idl new file mode 100644 index 000000000..04a080eb3 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/CompareBookmark.idl @@ -0,0 +1,62 @@ +/* -*- 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_sdbcx_CompareBookmark_idl__ +#define __com_sun_star_sdbcx_CompareBookmark_idl__ + + module com { module sun { module star { module sdbcx { + + +/** describes the result of a comparison of two bookmarks. + */ +published constants CompareBookmark +{ + + /** the first bookmark is before the second. + */ + const long LESS = -1; + + + /** the first bookmark is equal to the second. + */ + const long EQUAL = 0; + + + /** the first bookmark is after the second one. + */ + const long GREATER = 1; + + + /** the first bookmark is not the same as the second one. + */ + const long NOT_EQUAL = 2; + + + /** the two bookmarks are not comparable. + */ + const long NOT_COMPARABLE = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Container.idl b/offapi/com/sun/star/sdbcx/Container.idl new file mode 100644 index 000000000..bd4ef5ff7 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Container.idl @@ -0,0 +1,94 @@ +/* -*- 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_sdbcx_Container_idl__ +#define __com_sun_star_sdbcx_Container_idl__ + + module com { module sun { module star { module container { + published interface XNameAccess; + published interface XIndexAccess; + published interface XEnumerationAccess; +};};};}; + + module com { module sun { module star { module util { + published interface XRefreshable; +};};};}; + + module com { module sun { module star { module sdbcx { + + published interface XDataDescriptorFactory; + published interface XAppend; + published interface XDrop; + + +/** describes every container which is used for data definition. Each + container must support access to its elements by the element's name or + by the element's position. + + <p> + Simple enumeration must be supported as well. + </p> + <p> + To reflect the changes with the underlying database, a refresh mechanism + needs to be supported. + </p> + <p> + A container may support the possibility to add new elements or to drop + existing elements. Additions are always done by descriptors which define the + properties of the new element. + </p> + */ +published service Container +{ + // gives access to the elements by name. + interface com::sun::star::container::XNameAccess; + + // gives access to the elements by index. + interface com::sun::star::container::XIndexAccess; + + // used to create an enumeration of the elements. + interface com::sun::star::container::XEnumerationAccess; + + + /** is optional for implementation. Used to reflect changes. + */ + [optional] interface com::sun::star::util::XRefreshable; + + /** optional for implementation. Allows to create descriptor elements which then could be used to append new elements. + */ + [optional] interface XDataDescriptorFactory; + + /** optional for implementation, provides the possibility of adding + a new element to the container. + */ + [optional] interface XAppend; + + /** optional for implementation, provides the possibility of dropping + an element from the container. + */ + [optional] interface XDrop; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/DatabaseDefinition.idl b/offapi/com/sun/star/sdbcx/DatabaseDefinition.idl new file mode 100644 index 000000000..8cc697386 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/DatabaseDefinition.idl @@ -0,0 +1,73 @@ +/* -*- 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_sdbcx_DatabaseDefinition_idl__ +#define __com_sun_star_sdbcx_DatabaseDefinition_idl__ + + module com { module sun { module star { module sdbcx { + + published interface XTablesSupplier; + published interface XViewsSupplier; + published interface XUsersSupplier; + published interface XGroupsSupplier; + + +/** could be used as an extension for performing data definition tasks on + databases, and to control the access rights on database objects. + + + <p> + It may be implemented by a database driver provider, to encapsulate the + complexity of data definition, and to give a common way for data definition as + the DDL of most DBMS differs. + </p> + <p> + At least, the access to the tables of a database should be implemented. + The implementation of other known database objects like views is optional. + </p> + <p> + To control the access rights of users, there is the possibility to + implement objects like users and groups. + </p> + */ +published service DatabaseDefinition +{ + // gives access to the tables. + interface XTablesSupplier; + + /** The implementation is optional. + */ + [optional] interface XViewsSupplier; + + /** The implementation is optional. + */ + [optional] interface XUsersSupplier; + + /** The implementation is optional. + */ + [optional] interface XGroupsSupplier; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Descriptor.idl b/offapi/com/sun/star/sdbcx/Descriptor.idl new file mode 100644 index 000000000..056fa0bd1 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Descriptor.idl @@ -0,0 +1,56 @@ +/* -*- 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_sdbcx_Descriptor_idl__ +#define __com_sun_star_sdbcx_Descriptor_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + +/** is used to create a new object within a database. + + <p> + A descriptor is commonly created by the container of a specific object, such as, tables or views. + After the creation of the descriptor the properties have to be filled. + Afterwards, you append the descriptor to the container and the container creates a new object based + on the information of the descriptor. The descriptor can be used to create several objects. + </p> + <p> + A descriptor contains at least the information of the name of an object. + </p> + @see com::sun::star::sdbcx::XAppend + */ +published service Descriptor +{ + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** is the name for the object to create. + */ + [property] string Name; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Driver.idl b/offapi/com/sun/star/sdbcx/Driver.idl new file mode 100644 index 000000000..90142171c --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Driver.idl @@ -0,0 +1,69 @@ +/* -*- 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_sdbcx_Driver_idl__ +#define __com_sun_star_sdbcx_Driver_idl__ + +#include <com/sun/star/sdbc/Driver.idl> + + module com { module sun { module star { module sdbcx { + + published interface XDataDefinitionSupplier; + published interface XCreateCatalog; + published interface XDropCatalog; + + +/** extends the service + com::sun::star::sdbc::Driver + by beans for data definition. +<p> + This service is optional for each driver. Its purpose is to define + a common way for database definition, as the DDL differs between most DBMS. +</p> +<p> + Definition and deletion of database catalogs can't be defined in a common + manner for DBMS, but it should be possible to hide much of the complexity + of creation and deletion of catalogs. Each driver could provide methods to + cover these tasks. +</p> + */ +published service Driver +{ + service com::sun::star::sdbc::Driver; + + /** used to get access to the catalog. + @see Catalog + */ + interface XDataDefinitionSupplier; + + + /** is optional for implementation. + */ + [optional] interface XCreateCatalog; + + /** is optional for implementation. + */ + [optional] interface XDropCatalog; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Group.idl b/offapi/com/sun/star/sdbcx/Group.idl new file mode 100644 index 000000000..6c1ccdf4d --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Group.idl @@ -0,0 +1,59 @@ +/* -*- 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_sdbcx_Group_idl__ +#define __com_sun_star_sdbcx_Group_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XUsersSupplier; + published interface XAuthorizable; + + +/** represents a group of users, which has certain access rights for the objects + of the database. + */ +published service Group +{ + /** gives access to the users which contains to this group. + */ + interface XUsersSupplier; + + /** shows the access rights of this group. + */ + interface XAuthorizable; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the group. + */ + [readonly, property] string Name; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/GroupDescriptor.idl b/offapi/com/sun/star/sdbcx/GroupDescriptor.idl new file mode 100644 index 000000000..8b0254ccd --- /dev/null +++ b/offapi/com/sun/star/sdbcx/GroupDescriptor.idl @@ -0,0 +1,44 @@ +/* -*- 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_sdbcx_GroupDescriptor_idl__ +#define __com_sun_star_sdbcx_GroupDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + module com { module sun { module star { module sdbcx { + +/** is used to create a new group in a database. + @see com::sun::star::sdbcx::Group + */ +published service GroupDescriptor +{ + service Descriptor; + + /** is the name of the group. + */ + [property] string Name; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Index.idl b/offapi/com/sun/star/sdbcx/Index.idl new file mode 100644 index 000000000..1d25db0dc --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Index.idl @@ -0,0 +1,88 @@ +/* -*- 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_sdbcx_Index_idl__ +#define __com_sun_star_sdbcx_Index_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XColumnsSupplier; + published interface XDataDescriptorFactory; + + +/** is used to specify the index for a database table. It refers to one or + more columns of a table. + <p> + <b> + Note: + </b> + All properties and columns of an index could by modified before they are appended + to a table. In that case the service is a data descriptor. + </p> + */ +published service Index +{ + + /** optional, could be used to copy an index. + */ + [optional] interface XDataDescriptorFactory; + + + /** access to the contained index columns. + */ + interface XColumnsSupplier; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the index. + */ + [readonly, property] string Name; + + + /** is the name of the index catalog, may be empty. + */ + [readonly, property] string Catalog; + + + /** indicates that the index allow only unique values. + */ + [readonly, property] boolean IsUnique; + + + /** indicates that the index is used for the primary key. + */ + [readonly, property] boolean IsPrimaryKeyIndex; + + + /** indicates that the index is clustered. + */ + [readonly, property] boolean IsClustered; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/IndexColumn.idl b/offapi/com/sun/star/sdbcx/IndexColumn.idl new file mode 100644 index 000000000..167bf4a97 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/IndexColumn.idl @@ -0,0 +1,47 @@ +/* -*- 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_sdbcx_IndexColumn_idl__ +#define __com_sun_star_sdbcx_IndexColumn_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + + module com { module sun { module star { module sdbcx { + + +/** adds a property to determine the sort order of the column values within the + index. Some database drivers may ignore this property. + */ +published service IndexColumn +{ + service Column; + + + /** is the column sorted in ascending order. + */ + [readonly, property] boolean IsAscending; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/IndexColumnDescriptor.idl b/offapi/com/sun/star/sdbcx/IndexColumnDescriptor.idl new file mode 100644 index 000000000..7ded8c17c --- /dev/null +++ b/offapi/com/sun/star/sdbcx/IndexColumnDescriptor.idl @@ -0,0 +1,47 @@ +/* -*- 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_sdbcx_IndexColumnDescriptor_idl__ +#define __com_sun_star_sdbcx_IndexColumnDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + +/** adds a property to determine the sort order of the column values within the + index. Some database drivers may ignore this property. + */ +published service IndexColumnDescriptor +{ + service Descriptor; + + + /** is the column sorted in ascending order. + */ + [property] boolean IsAscending; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/IndexDescriptor.idl b/offapi/com/sun/star/sdbcx/IndexDescriptor.idl new file mode 100644 index 000000000..4c0a154c8 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/IndexDescriptor.idl @@ -0,0 +1,64 @@ +/* -*- 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_sdbcx_IndexDescriptor_idl__ +#define __com_sun_star_sdbcx_IndexDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + published interface XColumnsSupplier; + + +/** is used to define a new index for a database table. + @see com::sun::star::sdbcx::Index + */ +published service IndexDescriptor +{ + service Descriptor; + + + /** access to the contained index columns. + */ + interface XColumnsSupplier; + + + /** is the name of the index catalog, may be empty. + */ + [property] string Catalog; + + + /** indicates that the index allow only unique values. + */ + [property] boolean IsUnique; + + + /** indicates that the index is clustered. + */ + [property] boolean IsClustered; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Key.idl b/offapi/com/sun/star/sdbcx/Key.idl new file mode 100644 index 000000000..7465f6e57 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Key.idl @@ -0,0 +1,84 @@ +/* -*- 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_sdbcx_Key_idl__ +#define __com_sun_star_sdbcx_Key_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XColumnsSupplier; + published interface XDataDescriptorFactory; + + +/** is used to define a new key for a table. + */ +published service Key +{ + + /** optional, could be used to copy a key. + */ + [optional] interface XDataDescriptorFactory; + + + /** access to the contained key columns. + */ + interface XColumnsSupplier; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the key + */ + [readonly, property] string Name; + + + /** indicates the type of the key. + @see com::sun::star::sdbcx::KeyType + */ + [readonly, property] long Type; + + + /** is the name of the referenced table, only used for foreign + keys. + */ + [readonly, property] string ReferencedTable; + + + /** is the rule which is applied for updates; only used for foreign keys. + @see com::sun::star::sdbc::KeyRule + */ + [readonly, property] long UpdateRule; + + + /** is the rule which is applied for deletions; only used for foreign keys. + @see com::sun::star::sdbc::KeyRule + */ + [readonly, property] long DeleteRule; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/KeyColumn.idl b/offapi/com/sun/star/sdbcx/KeyColumn.idl new file mode 100644 index 000000000..66da538f5 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/KeyColumn.idl @@ -0,0 +1,45 @@ +/* -*- 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_sdbcx_KeyColumn_idl__ +#define __com_sun_star_sdbcx_KeyColumn_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + +module com { module sun { module star { module sdbcx { + +/** + adds a property to specify the referenced column. This is used to specify + foreign keys. + + */ +published service KeyColumn +{ + service Column; + + /** is the name of a reference column out of the referenced table. + */ + [readonly, property] string RelatedColumn; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/KeyColumnDescriptor.idl b/offapi/com/sun/star/sdbcx/KeyColumnDescriptor.idl new file mode 100644 index 000000000..80a96a918 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/KeyColumnDescriptor.idl @@ -0,0 +1,48 @@ +/* -*- 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_sdbcx_KeyColumnDescriptor_idl__ +#define __com_sun_star_sdbcx_KeyColumnDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + +/** adds a property to specify the referenced column. This is used to specify + foreign keys. + @see com::sun::star::sdbcx::KeyColumn + */ +published service KeyColumnDescriptor +{ + service Descriptor; + + + /** is the name of a reference column out of the referenced table. + */ + [property] string RelatedColumn; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/KeyDescriptor.idl b/offapi/com/sun/star/sdbcx/KeyDescriptor.idl new file mode 100644 index 000000000..cd7f49ef9 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/KeyDescriptor.idl @@ -0,0 +1,66 @@ +/* -*- 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_sdbcx_KeyDescriptor_idl__ +#define __com_sun_star_sdbcx_KeyDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + +module com { module sun { module star { module sdbcx { + + published interface XColumnsSupplier; + +/** + is used to define a new key for a table. + + @see com::sun::star::sdbcx::Key + */ +published service KeyDescriptor +{ + service Descriptor; + + /** access to the contained key columns. + */ + interface XColumnsSupplier; + + /** indicates the type of the key. + @see com::sun::star::sdbcx::KeyType + */ + [property] long Type; + + /** is the name of the referenced table, only used for foreign keys. + */ + [property] string ReferencedTable; + + /** is the rule which is applied for updates; only used for foreign keys. + @see com::sun::star::sdbc::KeyRule + */ + [property] long UpdateRule; + + /** is the rule which is applied for deletions; only used for foreign keys. + @see com::sun::star::sdbc::KeyRule + */ + [property] long DeleteRule; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/KeyType.idl b/offapi/com/sun/star/sdbcx/KeyType.idl new file mode 100644 index 000000000..22273ec40 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/KeyType.idl @@ -0,0 +1,50 @@ +/* -*- 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_sdbcx_KeyType_idl__ +#define __com_sun_star_sdbcx_KeyType_idl__ + + module com { module sun { module star { module sdbcx { + + +/** determines the type of a key. + */ +published constants KeyType +{ + + /** indicates that the key is the primary key of a table. + */ + const long PRIMARY = 1; + + /** indicates that the key is unique, NULL values are allowed. + */ + const long UNIQUE = 2; + + /** indicates that the key is a foreign key of a table. + */ + const long FOREIGN = 3; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/PreparedStatement.idl b/offapi/com/sun/star/sdbcx/PreparedStatement.idl new file mode 100644 index 000000000..4e5be7bc7 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/PreparedStatement.idl @@ -0,0 +1,48 @@ +/* -*- 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_sdbcx_PreparedStatement_idl__ +#define __com_sun_star_sdbcx_PreparedStatement_idl__ + +#include <com/sun/star/sdbc/PreparedStatement.idl> + +module com { module sun { module star { module sdbcx { + +/** + extends the definition of the service + com::sun::star::sdbc::PreparedStatement + with a flag for the usage of bookmarks. + @see ResultSet + @see XRowLocate + */ +published service PreparedStatement +{ + service com::sun::star::sdbc::PreparedStatement; + /** + returns if a result set should allow the navigation with bookmarks + or not. The default is `FALSE`. + */ + [property] boolean UseBookmarks; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Privilege.idl b/offapi/com/sun/star/sdbcx/Privilege.idl new file mode 100644 index 000000000..ed15471c4 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Privilege.idl @@ -0,0 +1,75 @@ +/* -*- 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_sdbcx_Privilege_idl__ +#define __com_sun_star_sdbcx_Privilege_idl__ + + module com { module sun { module star { module sdbcx { + + +/** defines a list of flags (bitmaps) which determines the access rights of a + user or a user group. This list may grow in the future. + */ +published constants Privilege +{ + + /** indicates that a user is allowed to read the data. + */ + const long SELECT = 0x00000001; + + /** indicates that a user is allowed to insert new data. + */ + const long INSERT = 0x00000002; + + /** indicates that a user is allowed to update data. + */ + const long UPDATE = 0x00000004; + + /** indicates that a user is allowed to delete data. + */ + const long DELETE = 0x00000008; + + /** indicates that a user is allowed to read the structure of a definition object. + */ + const long READ = 0x00000010; + + /** indicates that a user is allowed to create a definition object. + */ + const long CREATE = 0x00000020; + + /** indicates that a user is allowed to alter an existing object. + */ + const long ALTER = 0x00000040; + + /** indicates that a user is allowed to set foreign keys for a table. + */ + const long REFERENCE = 0x00000080; + + /** indicates that a user is allowed to drop a definition object. + */ + const long DROP = 0x00000100; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/PrivilegeObject.idl b/offapi/com/sun/star/sdbcx/PrivilegeObject.idl new file mode 100644 index 000000000..eabb6adf2 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/PrivilegeObject.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbcx_PrivilegeObject_idl__ +#define __com_sun_star_sdbc_PrivilegeObject_idl__ + + module com { module sun { module star { module sdbcx { + + +/** defines the list of objects for which a user may have access rights or not. + This list may grow in the future. + */ +published constants PrivilegeObject +{ + + /** indicates a table. + */ + const long TABLE = 0; + + /** indicates a view. + */ + const long VIEW = 1; + + /** indicates a column of a table. + */ + const long COLUMN = 2; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/ReferenceColumn.idl b/offapi/com/sun/star/sdbcx/ReferenceColumn.idl new file mode 100644 index 000000000..9fd977055 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/ReferenceColumn.idl @@ -0,0 +1,48 @@ +/* -*- 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_sdbcx_ReferenceColumn_idl__ +#define __com_sun_star_sdbcx_ReferenceColumn_idl__ + +#include <com/sun/star/sdbcx/Column.idl> + + + module com { module sun { module star { module sdbcx { + + +/** adds a property to specify the referenced column. This is used to specify + foreign keys. + */ +published service ReferenceColumn +{ + service Column; + + + /** is the name of a reference column out of the referenced table. + */ + [readonly, property] string ReferencedColumn; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/ResultSet.idl b/offapi/com/sun/star/sdbcx/ResultSet.idl new file mode 100644 index 000000000..cffdcff00 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/ResultSet.idl @@ -0,0 +1,75 @@ +/* -*- 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_sdbcx_ResultSet_idl__ +#define __com_sun_star_sdbcx_ResultSet_idl__ + +#include <com/sun/star/sdbc/ResultSet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XRowLocate; + published interface XDeleteRows; + + +/** extends the SDBC ResultSet by the possibility of bookmark positioning, canceling + the positioning, and updating of rows. + */ +published service ResultSet +{ + service com::sun::star::sdbc::ResultSet; + + + /** could be used for canceling the execution of SQL statements if both + the DBMS and the driver support aborting of navigation commands. + The implementation is optional. + */ + [optional] interface com::sun::star::util::XCancellable; + + + /** is the interface for navigating on the result set by unique bookmarks. + */ + interface XRowLocate; + + + /** is the interface for deleting more than one row, identified by its bookmark. + The implementation is optional. + */ + [optional] interface XDeleteRows; + + + /** returns if the result set supports bookmark navigation. + */ + [readonly, property] boolean IsBookmarkable; + + + /** returns whether the result set supports updating of newly inserted rows. + This may not work, as the result set may contain automatic generated data + which is used as key information. + */ + [optional, readonly, property] boolean CanUpdateInsertedRows; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Statement.idl b/offapi/com/sun/star/sdbcx/Statement.idl new file mode 100644 index 000000000..47c97bb0e --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Statement.idl @@ -0,0 +1,53 @@ +/* -*- 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_sdbcx_Statement_idl__ +#define __com_sun_star_sdbcx_Statement_idl__ + +#include <com/sun/star/sdbc/Statement.idl> + + module com { module sun { module star { module sdbcx { + + +/** extends the definition of the service + com::sun::star::sdbc::Statement + with a flag for the usage of bookmarks. + @see ResultSet + @see XRowLocate + */ +published service Statement +{ + service com::sun::star::sdbc::Statement; + + + /** returns + `TRUE` + if a result set should allow navigation with bookmarks or not. + The default is `FALSE`. + */ + [property] boolean UseBookmarks; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/Table.idl b/offapi/com/sun/star/sdbcx/Table.idl new file mode 100644 index 000000000..3dec454a9 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/Table.idl @@ -0,0 +1,125 @@ +/* -*- 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_sdbcx_Table_idl__ +#define __com_sun_star_sdbcx_Table_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XDataDescriptorFactory; + published interface XColumnsSupplier; + published interface XIndexesSupplier; + published interface XKeysSupplier; + published interface XRename; + published interface XAlterTable; + + +/** used to specify a table in a database. A table is described by its + name and one or more columns. + + <p> + In addition, it may contain indexes to improve the performance in + the retrieval of the table's data and keys, and to define semantic rules for the table. + </p> + <p> + <b> + Note: + </b> + All properties and columns of a table could by modified before + it is appended to a database. In that case, the service is in fact a + descriptor. On existing tables, a user might alter columns, add or delete + columns, indexes, and keys depending on the capabilities of the database and on + the user's privileges. + </p> + + @see com::sun::star::sdbc::XDatabaseMetaData + @see com::sun::star::sdbcx::Privilege + */ +published service Table +{ + + /** optional, could be used to copy a table. + */ + [optional] interface XDataDescriptorFactory; + + + /** access to the contained table columns. + */ + interface XColumnsSupplier; + + + /** optional, provides the access of the table indexes. + */ + [optional] interface XIndexesSupplier; + + + /** optional, provides the access to the table keys. + */ + [optional] interface XKeysSupplier; + + + /** optional, allows the renaming of tables. + */ + [optional] interface XRename; + + + /** optional, allows the altering of columns. + */ + [optional] interface XAlterTable; + + // gives access to the properties + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the table. + */ + [readonly, property] string Name; + + + /** is the name of the table catalog. + */ + [readonly, property] string CatalogName; + + + /** is the name of the table schema. + */ + [readonly, property] string SchemaName; + + + /** supplies a comment on the table. Could be empty, if not supported by + the driver. + */ + [readonly, property] string Description; + + + /** indicates the type of the table like (TABLE, VIEW, SYSTEM TABLE). + Could be empty, if not supported by the driver. + */ + [optional, readonly, property] string Type; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/TableDescriptor.idl b/offapi/com/sun/star/sdbcx/TableDescriptor.idl new file mode 100644 index 000000000..43538794d --- /dev/null +++ b/offapi/com/sun/star/sdbcx/TableDescriptor.idl @@ -0,0 +1,79 @@ +/* -*- 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_sdbcx_TableDescriptor_idl__ +#define __com_sun_star_sdbcx_TableDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + published interface XColumnsSupplier; + published interface XKeysSupplier; + + +/** is used to define a table of a database. A table is described by its + name and one or more columns and the keys for semantic rules. + + <p> + In addition, it may contain keys, and to define semantic rules for the table. + <b> + Note: + </b> + Indexes can only be appended when the table is already appended at the database. + </p> + @see com::sun::star::sdbcx::Table + */ +published service TableDescriptor +{ + + /** access to the contained table columns. + */ + interface XColumnsSupplier; + + + /** optional, provides the access to the table keys. + */ + [optional] interface XKeysSupplier; + + service Descriptor; + + /** is the name of the table catalog. + */ + [property] string CatalogName; + + + /** is the name of the table schema. + */ + [property] string SchemaName; + + + /** supplies a comment on the table, Could be empty if not supported by + the driver. + */ + [property] string Description; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/User.idl b/offapi/com/sun/star/sdbcx/User.idl new file mode 100644 index 000000000..5daf88779 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/User.idl @@ -0,0 +1,59 @@ +/* -*- 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_sdbcx_User_idl__ +#define __com_sun_star_sdbcx_User_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + + published interface XGroupsSupplier; + published interface XUser; + + +/** represents a user of the database, who has certain access rights + for the objects of the database. + */ +published service User +{ + // used to change the password. + interface XUser; + + /** optional for implementation, if the database does not know the concept + of user groups. Provides for access to the groups to which a user belongs. + */ + [optional] interface XGroupsSupplier; + + // gives access to the properties + interface com::sun::star::beans::XPropertySet; + + + /** is the name of the user. + */ + [readonly, property] string Name; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/UserDescriptor.idl b/offapi/com/sun/star/sdbcx/UserDescriptor.idl new file mode 100644 index 000000000..f18c6e484 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/UserDescriptor.idl @@ -0,0 +1,47 @@ +/* -*- 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_sdbcx_UserDescriptor_idl__ +#define __com_sun_star_sdbcx_UserDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + +/** is used to create a new user in a database. + @see com::sun::star::sdbcx::User + */ +published service UserDescriptor +{ + service Descriptor; + + + /** is the password for the user. + */ + [property] string Password; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/View.idl b/offapi/com/sun/star/sdbcx/View.idl new file mode 100644 index 000000000..11f4aea13 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/View.idl @@ -0,0 +1,99 @@ +/* -*- 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_sdbcx_View_idl__ +#define __com_sun_star_sdbcx_View_idl__ + +#include <com/sun/star/beans/XPropertySet.idl> + + module com { module sun { module star { module sdbcx { + +published interface XRename; +published interface XAlterView; + + +/** is used to specify views on data. A view object is only used for creation and + deletion. Inspecting the command of a view is normally not supported. + + <p> + If a view is going to be added to a database, the view must have a unique + name within the view and the table container, as it can be used like a table. + <b> + Note: + </b> + After addition, both the containers for views and the container for tables must + contain an element for the view. + </p> + */ +published service View +{ + + /** is optional for implementation. + */ + [optional] interface XRename; + + // gives access to the properties. + interface com::sun::star::beans::XPropertySet; + + /** allows changing the view's #Command. + */ + [optional] interface XAlterView; + + + /** is the name of the view. + */ + [readonly, property] string Name; + + + /** is the name of the views catalog, may be empty. + */ + [readonly, property] string CatalogName; + + + /** is the name of the view's schema, may be empty. + */ + [readonly, property] string SchemaName; + + + /** is the command for creating the view. + + <p>This is typically a SQL Select-Statement.</p> + + <p>This property might be empty when a backend does not support retrieving the current + SQL command of a view. However, if the <code>View</code> supports altering its command + via the #XAlterView interface, then it's required to also provide the + current SQL command in the <code>Command</code> property.</p> + */ + [readonly, property] string Command; + + + /** indicates if a check option should be used for the view. + + @see com::sun::star::sdbcx::CheckOption + */ + [readonly, property] long CheckOption; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/ViewDescriptor.idl b/offapi/com/sun/star/sdbcx/ViewDescriptor.idl new file mode 100644 index 000000000..13ae38f2a --- /dev/null +++ b/offapi/com/sun/star/sdbcx/ViewDescriptor.idl @@ -0,0 +1,65 @@ +/* -*- 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_sdbcx_ViewDescriptor_idl__ +#define __com_sun_star_sdbcx_ViewDescriptor_idl__ + +#include <com/sun/star/sdbcx/Descriptor.idl> + + module com { module sun { module star { module sdbcx { + + +/** is used to define a new view for a database. + @see com::sun::star::sdbcx::View + */ +published service ViewDescriptor +{ + service Descriptor; + + + /** is the name of the views catalog, may be empty. + */ + [property] string CatalogName; + + + /** is the name of the views schema, may be empty. + */ + [property] string SchemaName; + + + /** is the command for creating the view. After appending a view to its + container, the command may be empty. This is typically a + SQL Select-Statement. + */ + [property] string Command; + + + /** indicates if a check option should be used for the view. + @see com::sun::star::sdbcx::CheckOption + */ + [property] long CheckOption; +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XAlterTable.idl b/offapi/com/sun/star/sdbcx/XAlterTable.idl new file mode 100644 index 000000000..971cd2a0d --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XAlterTable.idl @@ -0,0 +1,78 @@ +/* -*- 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_sdbcx_XAlterTable_idl__ +#define __com_sun_star_sdbcx_XAlterTable_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + + module com { module sun { module star { module beans { + published interface XPropertySet; +};};};}; +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + +/** is used for creating and appending new objects to a specific container. + */ +published interface XAlterTable: com::sun::star::uno::XInterface +{ + + /** is intended to alter an existing column identified by its name. + This operation must be atomic, in that it is done in one step.s + + @param colName + the column name which to alter + @param descriptor + the new descriptor for the new column + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void alterColumnByName([in]string colName, + [in]com::sun::star::beans::XPropertySet descriptor) + raises (com::sun::star::sdbc::SQLException, + com::sun::star::container::NoSuchElementException); + + /** is intended to alter an existing column identified by its position. + This operation must be atomic, in that it is done in one step.s + + @param index + the position of the column to alter + @param descriptor + the new descriptor for the new column + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + @throws com::sun::star::lang::IndexOutOfBoundsException + if the given index does not denote an existing column. + */ + void alterColumnByIndex([in]long index, + [in]com::sun::star::beans::XPropertySet descriptor) raises + (com::sun::star::sdbc::SQLException, + com::sun::star::lang::IndexOutOfBoundsException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XAlterView.idl b/offapi/com/sun/star/sdbcx/XAlterView.idl new file mode 100644 index 000000000..73dba72fb --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XAlterView.idl @@ -0,0 +1,55 @@ +/* -*- 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_sdbcx_XAlterView_idl__ +#define __com_sun_star_sdbcx_XAlterView_idl__ + +#include <com/sun/star/sdbc/SQLException.idl> + + +module com { module sun { module star { module sdbcx { + + +/** implements the possibility to alter aspects of a view's definition + + @since OOo 2.4 + */ +interface XAlterView +{ + /** changes the command which constitutes the view + + <p>The operation should be atomic.</p> + + @param NewCommand + the new command which the view should be based on. Usually an + <code>SELECT</code> statement. + @throws ::com::sun::star::sdbc::SQLException + if an error occurs + */ + void alterCommand( [in] string NewCommand ) + raises ( ::com::sun::star::sdbc::SQLException ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XAppend.idl b/offapi/com/sun/star/sdbcx/XAppend.idl new file mode 100644 index 000000000..16ca751b3 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XAppend.idl @@ -0,0 +1,62 @@ +/* -*- 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_sdbcx_XAppend_idl__ +#define __com_sun_star_sdbcx_XAppend_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/ElementExistException.idl> + + module com { module sun { module star { module beans { + published interface XPropertySet; +};};};}; + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + +/** is used for creating and appending new objects to a specific container. + */ +published interface XAppend: com::sun::star::uno::XInterface +{ + + /** creates a new object using the given descriptor and appends it + to the related container. + <b> + Note: + </b> + The descriptor will not be changed and can be used again to append another object. + @param descriptor + the descriptor which should be serve to append a new object + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void appendByDescriptor([in]com::sun::star::beans::XPropertySet descriptor) + raises (com::sun::star::sdbc::SQLException, + com::sun::star::container::ElementExistException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XAuthorizable.idl b/offapi/com/sun/star/sdbcx/XAuthorizable.idl new file mode 100644 index 000000000..fae084158 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XAuthorizable.idl @@ -0,0 +1,110 @@ +/* -*- 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_sdbcx_XAuthorizable_idl__ +#define __com_sun_star_sdbcx_XAuthorizable_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + +/** is used for accessing and setting the permissions of a user for a database + object. + @see com::sun::star::sdbcx::PrivilegeObject + @see com::sun::star::sdbcx::Privilege + */ +published interface XAuthorizable: com::sun::star::uno::XInterface +{ + + /** retrieves the permissions for a specific object. + + @param objName + the name of the object + @param objType + a value of com::sun::star::sdbcx::PrivilegeObject + + @returns + the privileges + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + long getPrivileges([in]string objName, [in]long objType) raises + (com::sun::star::sdbc::SQLException); + + /** retrieves the permissions for a specific object, which could be granted + to other users and groups. + + @param objName + the name of the object + @param objType + a value of com::sun::star::sdbcx::PrivilegeObject + + @returns + the grant privileges + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + long getGrantablePrivileges([in]string objName, [in]long objType) raises + (com::sun::star::sdbc::SQLException); + + /** adds additional permissions for a specific object. + + @param objName + the name of the object + @param objType + a value from the com::sun::star::sdbcx::PrivilegeObject constants group + @param objPrivileges + a value from the com::sun::star::sdbcx::Privilege constants group + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void grantPrivileges([in]string objName, [in]long objType, + [in]long objPrivileges) raises + (com::sun::star::sdbc::SQLException); + + /** removes permissions for a specific object from a group or user. + + @param objName + the name of the object + @param objType + a value from the com::sun::star::sdbcx::PrivilegeObject constants group + @param objPrivileges + a value from the com::sun::star::sdbcx::Privilege constants group + + + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void revokePrivileges([in]string objName, [in]long objType, + [in]long objPrivileges) raises + (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XColumnsSupplier.idl b/offapi/com/sun/star/sdbcx/XColumnsSupplier.idl new file mode 100644 index 000000000..d4f0effee --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XColumnsSupplier.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbcx_XColumnsSupplier_idl__ +#define __com_sun_star_sdbcx_XColumnsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides the access to a container of columns, typically used for tables and + indexes. + */ +published interface XColumnsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of columns. + @returns + the columns + */ + com::sun::star::container::XNameAccess getColumns(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XCreateCatalog.idl b/offapi/com/sun/star/sdbcx/XCreateCatalog.idl new file mode 100644 index 000000000..e1644b05e --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XCreateCatalog.idl @@ -0,0 +1,59 @@ +/* -*- 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_sdbcx_XCreateCatalog_idl__ +#define __com_sun_star_sdbcx_XCreateCatalog_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/container/ElementExistException.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + + module com { module sun { module star { module sdbcx { + + +/** may be implemented to hide the complexity of creating a database catalog. + */ +published interface XCreateCatalog: com::sun::star::uno::XInterface +{ + + /** creates the catalog by using a sequence of property values. The kind + of properties depends on the provider. + + @param info + driver specific information + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + + */ + void createCatalog([in]sequence<com::sun::star::beans::PropertyValue> info) + raises (com::sun::star::sdbc::SQLException, + com::sun::star::container::ElementExistException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XDataDefinitionSupplier.idl b/offapi/com/sun/star/sdbcx/XDataDefinitionSupplier.idl new file mode 100644 index 000000000..c842c0839 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XDataDefinitionSupplier.idl @@ -0,0 +1,78 @@ +/* -*- 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_sdbcx_XDataDefinitionSupplier_idl__ +#define __com_sun_star_sdbcx_XDataDefinitionSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbc { + published interface XConnection; +};};};}; + + module com { module sun { module star { module sdbcx { + + published interface XTablesSupplier; + + +/** provides the access to data definition beans from a connected database. + */ +published interface XDataDefinitionSupplier: com::sun::star::uno::XInterface +{ + + /** returns at least the container of tables related to the given connection. + @param connection + the related connection + @returns + the container + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + XTablesSupplier getDataDefinitionByConnection( + [in]com::sun::star::sdbc::XConnection connection) + raises (com::sun::star::sdbc::SQLException); + + /** returns at least the container of tables related to the given Database URL. + @param url + a database url of the form sdbc:subprotocol:subname + @param info + a list of arbitrary string tag/value pairs as connection arguments; + normally at least a "user" and "password" property should be included + @returns + the container + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + XTablesSupplier getDataDefinitionByURL( + [in]string url, + [in]sequence<com::sun::star::beans::PropertyValue> info) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XDataDescriptorFactory.idl b/offapi/com/sun/star/sdbcx/XDataDescriptorFactory.idl new file mode 100644 index 000000000..a3d3eac7a --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XDataDescriptorFactory.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XDataDescriptorFactory_idl__ +#define __com_sun_star_sdbcx_XDataDescriptorFactory_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + module com { module sun { module star { module beans { + published interface XPropertySet; +};};};}; + + module com { module sun { module star { module sdbcx { + +/** provides the creation of a descriptor for a definition object. + */ +published interface XDataDescriptorFactory: com::sun::star::uno::XInterface +{ + + /** returns a descriptor of a definition object. + @returns + the descriptor for that kind of objects + */ + com::sun::star::beans::XPropertySet createDataDescriptor(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XDeleteRows.idl b/offapi/com/sun/star/sdbcx/XDeleteRows.idl new file mode 100644 index 000000000..94ae17154 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XDeleteRows.idl @@ -0,0 +1,56 @@ +/* -*- 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_sdbcx_XDeleteRows_idl__ +#define __com_sun_star_sdbcx_XDeleteRows_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for the deletion of more than one row at a time. + */ +published interface XDeleteRows: com::sun::star::uno::XInterface +{ + + /** deletes one or more rows identified by their bookmarks. + @param rows + list of bookmarks identifying the rows. + @returns + an array of update counts containing one element for each + row. The array is ordered according to the order in + which bookmarks were given. + @throws com::sun::star::sdbc::SQLException + if a fatal error occurs, for instance, the connection gets lost if bookmarks + are used which do not belong to the according result set. + */ + sequence<long> deleteRows([in]sequence<any> rows) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XDrop.idl b/offapi/com/sun/star/sdbcx/XDrop.idl new file mode 100644 index 000000000..143a786cb --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XDrop.idl @@ -0,0 +1,65 @@ +/* -*- 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_sdbcx_XDrop_idl__ +#define __com_sun_star_sdbcx_XDrop_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/container/NoSuchElementException.idl> + +#include <com/sun/star/lang/IndexOutOfBoundsException.idl> + + module com { module sun { module star { module sdbcx { + +/** provides methods to remove an element of its container and to drop it from + the related database. + */ +published interface XDrop: com::sun::star::uno::XInterface +{ + + /** drops an object of the related container identified by its name. + @param elementName + the name of the element to be dropped + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void dropByName([in]string elementName) raises + (com::sun::star::sdbc::SQLException, + com::sun::star::container::NoSuchElementException); + + /** drops an object of the related container identified by its position. + @param index + the position of the element to be dropped + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void dropByIndex([in]long index) raises (com::sun::star::sdbc::SQLException, + com::sun::star::lang::IndexOutOfBoundsException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XDropCatalog.idl b/offapi/com/sun/star/sdbcx/XDropCatalog.idl new file mode 100644 index 000000000..600219359 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XDropCatalog.idl @@ -0,0 +1,61 @@ +/* -*- 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_sdbcx_XDropCatalog_idl__ +#define __com_sun_star_sdbcx_XDropCatalog_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/beans/PropertyValue.idl> + +#include <com/sun/star/container/NoSuchElementException.idl> + + module com { module sun { module star { module sdbcx { + + +/** may be implemented to hide the complexity of dropping a database catalog. Could + normally be used only in offline mode, no connection on the database. This + should be checked by the driver. + */ +published interface XDropCatalog: com::sun::star::uno::XInterface +{ + + /** drops a catalog identified by its name. + @param catalogName + the catalog name + @param info + driver specific information + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void dropCatalog([in]string catalogName, + [in]sequence<com::sun::star::beans::PropertyValue> info) + raises (com::sun::star::sdbc::SQLException, + com::sun::star::container::NoSuchElementException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XGroupsSupplier.idl b/offapi/com/sun/star/sdbcx/XGroupsSupplier.idl new file mode 100644 index 000000000..1cf0d5c84 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XGroupsSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XGroupsSupplier_idl__ +#define __com_sun_star_sdbcx_XGroupsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for access to a container of groups, typically used for a database + definition object. + */ +published interface XGroupsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of groups. + @returns + the groups + */ + com::sun::star::container::XNameAccess getGroups(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XIndexesSupplier.idl b/offapi/com/sun/star/sdbcx/XIndexesSupplier.idl new file mode 100644 index 000000000..093a5f37b --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XIndexesSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XIndexesSupplier_idl__ +#define __com_sun_star_sdbcx_XIndexesSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for access to a container of indexes, typically used for a table + definition object. + */ +published interface XIndexesSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of indexes. + @returns + the indexes + */ + com::sun::star::container::XNameAccess getIndexes(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XKeysSupplier.idl b/offapi/com/sun/star/sdbcx/XKeysSupplier.idl new file mode 100644 index 000000000..558faf370 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XKeysSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XKeysSupplier_idl__ +#define __com_sun_star_sdbcx_XKeysSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XIndexAccess.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for access to a container of keys, typically used for a table + definition object. + */ +published interface XKeysSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of keys. + @returns + the keys + */ + com::sun::star::container::XIndexAccess getKeys(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XRename.idl b/offapi/com/sun/star/sdbcx/XRename.idl new file mode 100644 index 000000000..542cc34e5 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XRename.idl @@ -0,0 +1,57 @@ +/* -*- 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_sdbcx_XRename_idl__ +#define __com_sun_star_sdbcx_XRename_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + +#include <com/sun/star/container/ElementExistException.idl> + + module com { module sun { module star { module sdbcx { + +/** supports the renaming of definition objects. + <br/> + + This is a very desirable feature which is not supported by all databases. There is no + standard SQL statement provided for this feature. + */ +published interface XRename: com::sun::star::uno::XInterface +{ + + /** is intended to alter the name of an object. + @param newName + the new name + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void rename([in]string newName) + raises (com::sun::star::sdbc::SQLException, + com::sun::star::container::ElementExistException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XRowLocate.idl b/offapi/com/sun/star/sdbcx/XRowLocate.idl new file mode 100644 index 000000000..d03480221 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XRowLocate.idl @@ -0,0 +1,142 @@ +/* -*- 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_sdbcx_XRowLocate_idl__ +#define __com_sun_star_sdbcx_XRowLocate_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + + +/** is used to identify rows within a result set and to find rows by a bookmark. + + + <p> + Bookmarks are only valid in the scope of the current result set and + are not interchangeable between result sets. A bookmark could be a complex data + structure, so it could not be compared in a safe way. Because of that, a provider + has to implement the compare method for bookmarks. + </p> + */ +published interface XRowLocate: com::sun::star::uno::XInterface +{ + + /** returns the bookmark of the current row of a result set. + @returns + the current bookmark + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + any getBookmark() raises (com::sun::star::sdbc::SQLException); + + /** moves the cursor to the row identified by a valid bookmark. + + <p> + If the bookmark could not be located, a result set will be positioned + after the last record. + <br/> + If the bookmark is invalid, or not generated by the current result set, then + the behavior is not defined, even an abnormal termination is possible. + </p> + @param bookmark + the bookmark where to move + @returns + `TRUE` if successful + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + boolean moveToBookmark([in]any bookmark) raises (com::sun::star::sdbc::SQLException); + + /** moves the cursor a relative number of rows, either positive or negative + starting at a given bookmark position. + + + <p> + If the bookmark could not be located, a result set will be positioned + after the last record. + <br/> + If the bookmark is invalid, or not generated by the current result set, then + the behavior is not defined, even an abnormal termination is possible. + </p> + @param bookmark + the bookmark where to move + @param rows + count of rows move relative to the bookmark + @returns + `TRUE` if successful + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + boolean moveRelativeToBookmark([in]any bookmark, [in]long rows) + raises (com::sun::star::sdbc::SQLException); + + /** compares two bookmarks and returns an indication of their relative values. + + <p> + The bookmarks must apply to the same ResultSet. You cannot reliably + compare bookmarks from different ResultSets, even if they were created from + the same source or statement. + <br/> + A bookmark that is not valid, or incorrectly formed, will cause an exception. + </p> + @param first + the first bookmark + @param second + the second bookmark + @returns + a value of com::sun::star::sdbcx::CompareBookmark + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + + @see com::sun::star::sdbcx::CompareBookmark + + */ + long compareBookmarks([in]any first, [in]any second) + raises (com::sun::star::sdbc::SQLException); + + /** determines whether the bookmarks of a result set are ordered or not. + @returns + `TRUE` if so + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + @see com::sun::star::sdbcx::CompareBookmark + */ + boolean hasOrderedBookmarks() raises (com::sun::star::sdbc::SQLException); + + /** returns the hash value for a specified bookmark. + @param bookmark + the bookmark to hash + @returns + the hashed value + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + long hashBookmark([in]any bookmark) raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XTablesSupplier.idl b/offapi/com/sun/star/sdbcx/XTablesSupplier.idl new file mode 100644 index 000000000..f7c49ada6 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XTablesSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XTablesSupplier_idl__ +#define __com_sun_star_sdbcx_XTablesSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for access to a container of tables, typically used for a database + definition object. + */ +published interface XTablesSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of tables. + @returns + the tables + */ + com::sun::star::container::XNameAccess getTables(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XUser.idl b/offapi/com/sun/star/sdbcx/XUser.idl new file mode 100644 index 000000000..639eb5499 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XUser.idl @@ -0,0 +1,50 @@ +/* -*- 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_sdbcx_XUser_idl__ +#define __com_sun_star_sdbcx_XUser_idl__ + +#include <com/sun/star/sdbcx/XAuthorizable.idl> + + module com { module sun { module star { module sdbcx { + +/** allows for changing a users password. + */ +published interface XUser: XAuthorizable +{ + + /** allows modifying a user password. + @param oldPassword + the old password to be reset + @param newPassword + the new password + @throws com::sun::star::sdbc::SQLException + if a database access error occurs. + */ + void changePassword([in]string oldPassword, [in]string newPassword) + raises (com::sun::star::sdbc::SQLException); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XUsersSupplier.idl b/offapi/com/sun/star/sdbcx/XUsersSupplier.idl new file mode 100644 index 000000000..8dd1e6546 --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XUsersSupplier.idl @@ -0,0 +1,51 @@ +/* -*- 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_sdbcx_XUsersSupplier_idl__ +#define __com_sun_star_sdbcx_XUsersSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + +#include <com/sun/star/sdbc/SQLException.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides the access to a container of users, typically used for a database + definition object. + */ +published interface XUsersSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of users. + @returns + the users + */ + com::sun::star::container::XNameAccess getUsers(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbcx/XViewsSupplier.idl b/offapi/com/sun/star/sdbcx/XViewsSupplier.idl new file mode 100644 index 000000000..88eee170b --- /dev/null +++ b/offapi/com/sun/star/sdbcx/XViewsSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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_sdbcx_XViewsSupplier_idl__ +#define __com_sun_star_sdbcx_XViewsSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +#include <com/sun/star/container/XNameAccess.idl> + + module com { module sun { module star { module sdbcx { + + +/** provides for access to a container of views, typically used for a database + definition object. + */ +published interface XViewsSupplier: com::sun::star::uno::XInterface +{ + + /** returns the container of views. + @returns + the views + */ + com::sun::star::container::XNameAccess getViews(); +}; + + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |