summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/sdb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/sdb
parentInitial commit. (diff)
downloadlibreoffice-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 '')
-rw-r--r--offapi/com/sun/star/sdb/BooleanComparisonMode.idl64
-rw-r--r--offapi/com/sun/star/sdb/CallableStatement.idl47
-rw-r--r--offapi/com/sun/star/sdb/Column.idl48
-rw-r--r--offapi/com/sun/star/sdb/ColumnDescriptorControl.idl40
-rw-r--r--offapi/com/sun/star/sdb/ColumnDescriptorControlModel.idl79
-rw-r--r--offapi/com/sun/star/sdb/ColumnSettings.idl119
-rw-r--r--offapi/com/sun/star/sdb/CommandDefinition.idl38
-rw-r--r--offapi/com/sun/star/sdb/CommandType.idl52
-rw-r--r--offapi/com/sun/star/sdb/Connection.idl85
-rw-r--r--offapi/com/sun/star/sdb/ContentLoader.idl93
-rw-r--r--offapi/com/sun/star/sdb/DataAccessDescriptor.idl253
-rw-r--r--offapi/com/sun/star/sdb/DataAccessDescriptorFactory.idl39
-rw-r--r--offapi/com/sun/star/sdb/DataColumn.idl67
-rw-r--r--offapi/com/sun/star/sdb/DataSettings.idl84
-rw-r--r--offapi/com/sun/star/sdb/DataSource.idl238
-rw-r--r--offapi/com/sun/star/sdb/DataSourceBrowser.idl268
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccess.idl106
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessConnection.idl85
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessContext.idl77
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl61
-rw-r--r--offapi/com/sun/star/sdb/DatabaseContext.idl43
-rw-r--r--offapi/com/sun/star/sdb/DatabaseDocument.idl65
-rw-r--r--offapi/com/sun/star/sdb/DatabaseEnvironment.idl61
-rw-r--r--offapi/com/sun/star/sdb/DatabaseInteractionHandler.idl61
-rw-r--r--offapi/com/sun/star/sdb/DatabaseRegistrationEvent.idl52
-rw-r--r--offapi/com/sun/star/sdb/DatasourceAdministrationDialog.idl103
-rw-r--r--offapi/com/sun/star/sdb/DefinitionContainer.idl90
-rw-r--r--offapi/com/sun/star/sdb/DefinitionContent.idl65
-rw-r--r--offapi/com/sun/star/sdb/Document.idl51
-rw-r--r--offapi/com/sun/star/sdb/DocumentContainer.idl118
-rw-r--r--offapi/com/sun/star/sdb/DocumentDataSource.idl46
-rw-r--r--offapi/com/sun/star/sdb/DocumentDefinition.idl90
-rw-r--r--offapi/com/sun/star/sdb/DocumentSaveRequest.idl53
-rw-r--r--offapi/com/sun/star/sdb/ErrorCondition.idl161
-rw-r--r--offapi/com/sun/star/sdb/ErrorMessageDialog.idl94
-rw-r--r--offapi/com/sun/star/sdb/FilterDialog.idl51
-rw-r--r--offapi/com/sun/star/sdb/Forms.idl46
-rw-r--r--offapi/com/sun/star/sdb/InteractionHandler.idl42
-rw-r--r--offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl226
-rw-r--r--offapi/com/sun/star/sdb/OrderColumn.idl46
-rw-r--r--offapi/com/sun/star/sdb/OrderDialog.idl51
-rw-r--r--offapi/com/sun/star/sdb/ParametersRequest.idl60
-rw-r--r--offapi/com/sun/star/sdb/PreparedStatement.idl52
-rw-r--r--offapi/com/sun/star/sdb/Query.idl78
-rw-r--r--offapi/com/sun/star/sdb/QueryDefinition.idl42
-rw-r--r--offapi/com/sun/star/sdb/QueryDescriptor.idl95
-rw-r--r--offapi/com/sun/star/sdb/QueryDesign.idl185
-rw-r--r--offapi/com/sun/star/sdb/RelationDesign.idl77
-rw-r--r--offapi/com/sun/star/sdb/ReportDesign.idl39
-rw-r--r--offapi/com/sun/star/sdb/Reports.idl46
-rw-r--r--offapi/com/sun/star/sdb/ResultColumn.idl112
-rw-r--r--offapi/com/sun/star/sdb/ResultSet.idl53
-rw-r--r--offapi/com/sun/star/sdb/RowChangeAction.idl50
-rw-r--r--offapi/com/sun/star/sdb/RowChangeEvent.idl50
-rw-r--r--offapi/com/sun/star/sdb/RowSet.idl385
-rw-r--r--offapi/com/sun/star/sdb/RowSetVetoException.idl42
-rw-r--r--offapi/com/sun/star/sdb/RowsChangeEvent.idl42
-rw-r--r--offapi/com/sun/star/sdb/SQLContext.idl53
-rw-r--r--offapi/com/sun/star/sdb/SQLErrorEvent.idl46
-rw-r--r--offapi/com/sun/star/sdb/SQLFilterOperator.idl71
-rw-r--r--offapi/com/sun/star/sdb/SQLQueryComposer.idl66
-rw-r--r--offapi/com/sun/star/sdb/SingleSelectQueryAnalyzer.idl81
-rw-r--r--offapi/com/sun/star/sdb/SingleSelectQueryComposer.idl62
-rw-r--r--offapi/com/sun/star/sdb/Table.idl54
-rw-r--r--offapi/com/sun/star/sdb/TableDefinition.idl45
-rw-r--r--offapi/com/sun/star/sdb/TableDescriptor.idl50
-rw-r--r--offapi/com/sun/star/sdb/TableDesign.idl80
-rw-r--r--offapi/com/sun/star/sdb/TextConnectionSettings.idl38
-rw-r--r--offapi/com/sun/star/sdb/XAlterQuery.idl52
-rw-r--r--offapi/com/sun/star/sdb/XBookmarksSupplier.idl51
-rw-r--r--offapi/com/sun/star/sdb/XColumn.idl267
-rw-r--r--offapi/com/sun/star/sdb/XColumnUpdate.idl199
-rw-r--r--offapi/com/sun/star/sdb/XCommandPreparation.idl72
-rw-r--r--offapi/com/sun/star/sdb/XCompletedConnection.idl61
-rw-r--r--offapi/com/sun/star/sdb/XCompletedExecution.idl52
-rw-r--r--offapi/com/sun/star/sdb/XDataAccessDescriptorFactory.idl52
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseAccess.idl56
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseAccessListener.idl44
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseContext.idl81
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseEnvironment.idl53
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseRegistrations.idl150
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl62
-rw-r--r--offapi/com/sun/star/sdb/XDocumentDataSource.idl60
-rw-r--r--offapi/com/sun/star/sdb/XFormDocumentsSupplier.idl50
-rw-r--r--offapi/com/sun/star/sdb/XInteractionDocumentSave.idl54
-rw-r--r--offapi/com/sun/star/sdb/XInteractionSupplyParameters.idl51
-rw-r--r--offapi/com/sun/star/sdb/XOfficeDatabaseDocument.idl58
-rw-r--r--offapi/com/sun/star/sdb/XParametersSupplier.idl49
-rw-r--r--offapi/com/sun/star/sdb/XQueriesSupplier.idl52
-rw-r--r--offapi/com/sun/star/sdb/XQueryDefinition.idl52
-rw-r--r--offapi/com/sun/star/sdb/XQueryDefinitionsSupplier.idl48
-rw-r--r--offapi/com/sun/star/sdb/XReportDocumentsSupplier.idl50
-rw-r--r--offapi/com/sun/star/sdb/XResultSetAccess.idl59
-rw-r--r--offapi/com/sun/star/sdb/XRowSetApproveBroadcaster.idl54
-rw-r--r--offapi/com/sun/star/sdb/XRowSetApproveListener.idl62
-rw-r--r--offapi/com/sun/star/sdb/XRowSetChangeBroadcaster.idl54
-rw-r--r--offapi/com/sun/star/sdb/XRowSetChangeListener.idl50
-rw-r--r--offapi/com/sun/star/sdb/XRowSetSupplier.idl59
-rw-r--r--offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl54
-rw-r--r--offapi/com/sun/star/sdb/XRowsChangeListener.idl48
-rw-r--r--offapi/com/sun/star/sdb/XSQLErrorBroadcaster.idl56
-rw-r--r--offapi/com/sun/star/sdb/XSQLErrorListener.idl51
-rw-r--r--offapi/com/sun/star/sdb/XSQLQueryComposer.idl148
-rw-r--r--offapi/com/sun/star/sdb/XSQLQueryComposerFactory.idl44
-rw-r--r--offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl227
-rw-r--r--offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl235
-rw-r--r--offapi/com/sun/star/sdb/XSubDocument.idl93
-rw-r--r--offapi/com/sun/star/sdb/XTextConnectionSettings.idl44
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableContinuation.idl59
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableOperation.idl62
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableRowEvent.idl57
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableWizard.idl219
-rw-r--r--offapi/com/sun/star/sdb/application/DatabaseObject.idl64
-rw-r--r--offapi/com/sun/star/sdb/application/DatabaseObjectContainer.idl95
-rw-r--r--offapi/com/sun/star/sdb/application/DefaultViewController.idl92
-rw-r--r--offapi/com/sun/star/sdb/application/NamedDatabaseObject.idl78
-rw-r--r--offapi/com/sun/star/sdb/application/XCopyTableListener.idl84
-rw-r--r--offapi/com/sun/star/sdb/application/XCopyTableWizard.idl138
-rw-r--r--offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl322
-rw-r--r--offapi/com/sun/star/sdb/application/XTableUIProvider.idl112
-rw-r--r--offapi/com/sun/star/sdb/tools/CompositionType.idl79
-rw-r--r--offapi/com/sun/star/sdb/tools/ConnectionTools.idl43
-rw-r--r--offapi/com/sun/star/sdb/tools/XConnectionSupplier.idl48
-rw-r--r--offapi/com/sun/star/sdb/tools/XConnectionTools.idl129
-rw-r--r--offapi/com/sun/star/sdb/tools/XDataSourceMetaData.idl41
-rw-r--r--offapi/com/sun/star/sdb/tools/XIndexAlteration.idl75
-rw-r--r--offapi/com/sun/star/sdb/tools/XKeyAlteration.idl75
-rw-r--r--offapi/com/sun/star/sdb/tools/XObjectNames.idl164
-rw-r--r--offapi/com/sun/star/sdb/tools/XTableAlteration.idl94
-rw-r--r--offapi/com/sun/star/sdb/tools/XTableName.idl134
-rw-r--r--offapi/com/sun/star/sdb/tools/XTableRename.idl57
-rw-r--r--offapi/com/sun/star/sdb/tools/XViewAccess.idl67
-rw-r--r--offapi/com/sun/star/sdbc/BatchUpdateException.idl59
-rw-r--r--offapi/com/sun/star/sdbc/BestRowScope.idl68
-rw-r--r--offapi/com/sun/star/sdbc/BestRowType.idl65
-rw-r--r--offapi/com/sun/star/sdbc/CallableStatement.idl95
-rw-r--r--offapi/com/sun/star/sdbc/ChangeAction.idl51
-rw-r--r--offapi/com/sun/star/sdbc/ChangeEvent.idl44
-rw-r--r--offapi/com/sun/star/sdbc/ColumnSearch.idl91
-rw-r--r--offapi/com/sun/star/sdbc/ColumnType.idl65
-rw-r--r--offapi/com/sun/star/sdbc/ColumnValue.idl50
-rw-r--r--offapi/com/sun/star/sdbc/Connection.idl83
-rw-r--r--offapi/com/sun/star/sdbc/ConnectionPool.idl49
-rw-r--r--offapi/com/sun/star/sdbc/ConnectionProperties.idl61
-rw-r--r--offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl54
-rw-r--r--offapi/com/sun/star/sdbc/DataTruncation.idl81
-rw-r--r--offapi/com/sun/star/sdbc/DataType.idl136
-rw-r--r--offapi/com/sun/star/sdbc/Deferrability.idl68
-rw-r--r--offapi/com/sun/star/sdbc/Driver.idl68
-rw-r--r--offapi/com/sun/star/sdbc/DriverManager.idl32
-rw-r--r--offapi/com/sun/star/sdbc/DriverPropertyInfo.idl80
-rw-r--r--offapi/com/sun/star/sdbc/FILEConnectionProperties.idl61
-rw-r--r--offapi/com/sun/star/sdbc/FLATConnectionProperties.idl74
-rw-r--r--offapi/com/sun/star/sdbc/FetchDirection.idl51
-rw-r--r--offapi/com/sun/star/sdbc/IndexType.idl89
-rw-r--r--offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl105
-rw-r--r--offapi/com/sun/star/sdbc/KeyRule.idl161
-rw-r--r--offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl82
-rw-r--r--offapi/com/sun/star/sdbc/PreparedStatement.idl258
-rw-r--r--offapi/com/sun/star/sdbc/ProcedureColumn.idl98
-rw-r--r--offapi/com/sun/star/sdbc/ProcedureResult.idl77
-rw-r--r--offapi/com/sun/star/sdbc/ResultSet.idl236
-rw-r--r--offapi/com/sun/star/sdbc/ResultSetConcurrency.idl51
-rw-r--r--offapi/com/sun/star/sdbc/ResultSetType.idl60
-rw-r--r--offapi/com/sun/star/sdbc/RowSet.idl177
-rw-r--r--offapi/com/sun/star/sdbc/SQLException.idl70
-rw-r--r--offapi/com/sun/star/sdbc/SQLWarning.idl46
-rw-r--r--offapi/com/sun/star/sdbc/Statement.idl220
-rw-r--r--offapi/com/sun/star/sdbc/TransactionIsolation.idl78
-rw-r--r--offapi/com/sun/star/sdbc/XArray.idl231
-rw-r--r--offapi/com/sun/star/sdbc/XBatchExecution.idl70
-rw-r--r--offapi/com/sun/star/sdbc/XBlob.idl222
-rw-r--r--offapi/com/sun/star/sdbc/XClob.idl189
-rw-r--r--offapi/com/sun/star/sdbc/XCloseable.idl48
-rw-r--r--offapi/com/sun/star/sdbc/XColumnLocate.idl75
-rw-r--r--offapi/com/sun/star/sdbc/XConnection.idl406
-rw-r--r--offapi/com/sun/star/sdbc/XConnectionPool.idl42
-rw-r--r--offapi/com/sun/star/sdbc/XDataSource.idl92
-rw-r--r--offapi/com/sun/star/sdbc/XDatabaseMetaData.idl2443
-rw-r--r--offapi/com/sun/star/sdbc/XDatabaseMetaData2.idl51
-rw-r--r--offapi/com/sun/star/sdbc/XDriver.idl163
-rw-r--r--offapi/com/sun/star/sdbc/XDriverAccess.idl55
-rw-r--r--offapi/com/sun/star/sdbc/XDriverManager.idl109
-rw-r--r--offapi/com/sun/star/sdbc/XDriverManager2.idl64
-rw-r--r--offapi/com/sun/star/sdbc/XGeneratedResultSet.idl59
-rw-r--r--offapi/com/sun/star/sdbc/XIsolatedConnection.idl74
-rw-r--r--offapi/com/sun/star/sdbc/XMultipleResults.idl104
-rw-r--r--offapi/com/sun/star/sdbc/XOutParameters.idl131
-rw-r--r--offapi/com/sun/star/sdbc/XParameters.idl422
-rw-r--r--offapi/com/sun/star/sdbc/XPooledConnection.idl66
-rw-r--r--offapi/com/sun/star/sdbc/XPreparedBatchExecution.idl73
-rw-r--r--offapi/com/sun/star/sdbc/XPreparedStatement.idl103
-rw-r--r--offapi/com/sun/star/sdbc/XRef.idl53
-rw-r--r--offapi/com/sun/star/sdbc/XResultSet.idl310
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetMetaData.idl255
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetMetaDataSupplier.idl62
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetUpdate.idl126
-rw-r--r--offapi/com/sun/star/sdbc/XRow.idl312
-rw-r--r--offapi/com/sun/star/sdbc/XRowSet.idl74
-rw-r--r--offapi/com/sun/star/sdbc/XRowSetListener.idl62
-rw-r--r--offapi/com/sun/star/sdbc/XRowUpdate.idl236
-rw-r--r--offapi/com/sun/star/sdbc/XSQLData.idl133
-rw-r--r--offapi/com/sun/star/sdbc/XSQLInput.idl264
-rw-r--r--offapi/com/sun/star/sdbc/XSQLOutput.idl274
-rw-r--r--offapi/com/sun/star/sdbc/XStatement.idl128
-rw-r--r--offapi/com/sun/star/sdbc/XStruct.idl99
-rw-r--r--offapi/com/sun/star/sdbc/XWarningsSupplier.idl70
-rw-r--r--offapi/com/sun/star/sdbcx/CheckOption.idl52
-rw-r--r--offapi/com/sun/star/sdbcx/Column.idl116
-rw-r--r--offapi/com/sun/star/sdbcx/ColumnDescriptor.idl98
-rw-r--r--offapi/com/sun/star/sdbcx/CompareBookmark.idl62
-rw-r--r--offapi/com/sun/star/sdbcx/Container.idl94
-rw-r--r--offapi/com/sun/star/sdbcx/DatabaseDefinition.idl73
-rw-r--r--offapi/com/sun/star/sdbcx/Descriptor.idl56
-rw-r--r--offapi/com/sun/star/sdbcx/Driver.idl69
-rw-r--r--offapi/com/sun/star/sdbcx/Group.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/GroupDescriptor.idl44
-rw-r--r--offapi/com/sun/star/sdbcx/Index.idl88
-rw-r--r--offapi/com/sun/star/sdbcx/IndexColumn.idl47
-rw-r--r--offapi/com/sun/star/sdbcx/IndexColumnDescriptor.idl47
-rw-r--r--offapi/com/sun/star/sdbcx/IndexDescriptor.idl64
-rw-r--r--offapi/com/sun/star/sdbcx/Key.idl84
-rw-r--r--offapi/com/sun/star/sdbcx/KeyColumn.idl45
-rw-r--r--offapi/com/sun/star/sdbcx/KeyColumnDescriptor.idl48
-rw-r--r--offapi/com/sun/star/sdbcx/KeyDescriptor.idl66
-rw-r--r--offapi/com/sun/star/sdbcx/KeyType.idl50
-rw-r--r--offapi/com/sun/star/sdbcx/PreparedStatement.idl48
-rw-r--r--offapi/com/sun/star/sdbcx/Privilege.idl75
-rw-r--r--offapi/com/sun/star/sdbcx/PrivilegeObject.idl51
-rw-r--r--offapi/com/sun/star/sdbcx/ReferenceColumn.idl48
-rw-r--r--offapi/com/sun/star/sdbcx/ResultSet.idl75
-rw-r--r--offapi/com/sun/star/sdbcx/Statement.idl53
-rw-r--r--offapi/com/sun/star/sdbcx/Table.idl125
-rw-r--r--offapi/com/sun/star/sdbcx/TableDescriptor.idl79
-rw-r--r--offapi/com/sun/star/sdbcx/User.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/UserDescriptor.idl47
-rw-r--r--offapi/com/sun/star/sdbcx/View.idl99
-rw-r--r--offapi/com/sun/star/sdbcx/ViewDescriptor.idl65
-rw-r--r--offapi/com/sun/star/sdbcx/XAlterTable.idl78
-rw-r--r--offapi/com/sun/star/sdbcx/XAlterView.idl55
-rw-r--r--offapi/com/sun/star/sdbcx/XAppend.idl62
-rw-r--r--offapi/com/sun/star/sdbcx/XAuthorizable.idl110
-rw-r--r--offapi/com/sun/star/sdbcx/XColumnsSupplier.idl51
-rw-r--r--offapi/com/sun/star/sdbcx/XCreateCatalog.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/XDataDefinitionSupplier.idl78
-rw-r--r--offapi/com/sun/star/sdbcx/XDataDescriptorFactory.idl49
-rw-r--r--offapi/com/sun/star/sdbcx/XDeleteRows.idl56
-rw-r--r--offapi/com/sun/star/sdbcx/XDrop.idl65
-rw-r--r--offapi/com/sun/star/sdbcx/XDropCatalog.idl61
-rw-r--r--offapi/com/sun/star/sdbcx/XGroupsSupplier.idl49
-rw-r--r--offapi/com/sun/star/sdbcx/XIndexesSupplier.idl49
-rw-r--r--offapi/com/sun/star/sdbcx/XKeysSupplier.idl49
-rw-r--r--offapi/com/sun/star/sdbcx/XRename.idl57
-rw-r--r--offapi/com/sun/star/sdbcx/XRowLocate.idl142
-rw-r--r--offapi/com/sun/star/sdbcx/XTablesSupplier.idl49
-rw-r--r--offapi/com/sun/star/sdbcx/XUser.idl50
-rw-r--r--offapi/com/sun/star/sdbcx/XUsersSupplier.idl51
-rw-r--r--offapi/com/sun/star/sdbcx/XViewsSupplier.idl49
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 &quot;query1&quot;. Additionally, there is a query &quot;query2&quot; 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(&lt;structured-type&gt) 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>&lt;schema&gt;</code>, if the database supports schemas only</li>
+ <li><code>&lt;catalog&gt;</code>, if the database supports catalogs only</li>
+ <li><code>&lt;catalog&gt;.&lt;schema&gt;</code>, if the database supports both
+ catalogs and schemas, and catalogs are to appear at the beginning of an identifier.</li>
+ <li><code>&lt;schema&gt;.&lt;catalog&gt;</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&amp;lt;procedure-name&amp;gt;[&amp;lt;arg1&amp;gt;,&amp;lt;arg2&amp;gt;,...]}<br/>{call&amp;lt;procedure-name&amp;gt;[&amp;lt;arg1&amp;gt;,&amp;lt;arg2&amp;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 &ldquo;vnd.sun.star.expand&rdquo; 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;&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(&amp;lt;structured-type&amp;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(&amp;lt;structured-type&amp;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(&amp;lt;structured-type&amp;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(&amp;lt;structured-type&amp;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: */