1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_sdbc_ResultSet_idl__ 24*b1cdbd2cSJim Jagielski#define __com_sun_star_sdbc_ResultSet_idl__ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XComponent_idl__ 27*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XComponent.idl> 28*b1cdbd2cSJim Jagielski#endif 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_XPropertySet_idl__ 31*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/XPropertySet.idl> 32*b1cdbd2cSJim Jagielski#endif 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_util_XCancellable_idl__ 35*b1cdbd2cSJim Jagielski#include <com/sun/star/util/XCancellable.idl> 36*b1cdbd2cSJim Jagielski#endif 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski module com { module sun { module star { module sdbc { 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski published interface XStatement; 41*b1cdbd2cSJim Jagielski published interface XRow; 42*b1cdbd2cSJim Jagielski published interface XRowUpdate; 43*b1cdbd2cSJim Jagielski published interface XResultSet; 44*b1cdbd2cSJim Jagielski published interface XResultSetUpdate; 45*b1cdbd2cSJim Jagielski published interface XResultSetMetaDataSupplier; 46*b1cdbd2cSJim Jagielski published interface XWarningsSupplier; 47*b1cdbd2cSJim Jagielski published interface XColumnLocate; 48*b1cdbd2cSJim Jagielski published interface XCloseable; 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski/** provides access to a table of data. A ResultSet 52*b1cdbd2cSJim Jagielski object is usually generated by executing a Statement. 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski <p> 57*b1cdbd2cSJim Jagielski A ResultSet maintains a cursor pointing to its current row of 58*b1cdbd2cSJim Jagielski data. Initially the cursor is positioned before the first row. 59*b1cdbd2cSJim Jagielski The 'next' method moves the cursor to the next row. 60*b1cdbd2cSJim Jagielski </p> 61*b1cdbd2cSJim Jagielski <p> 62*b1cdbd2cSJim Jagielski The getXXX methods retrieve column values for the current 63*b1cdbd2cSJim Jagielski row. You can retrieve values using either the index number of the 64*b1cdbd2cSJim Jagielski column. Columns are numbered from 1. 65*b1cdbd2cSJim Jagielski </p> 66*b1cdbd2cSJim Jagielski <p> 67*b1cdbd2cSJim Jagielski For maximum portability, ResultSet columns within each row should be 68*b1cdbd2cSJim Jagielski read in left-to-right order and each column should be read only once. 69*b1cdbd2cSJim Jagielski </p> 70*b1cdbd2cSJim Jagielski <p> 71*b1cdbd2cSJim Jagielski For the getXXX methods, the SDBC driver attempts to convert the 72*b1cdbd2cSJim Jagielski underlying data to the specified type and returns a suitable 73*b1cdbd2cSJim Jagielski value. 74*b1cdbd2cSJim Jagielski </p> 75*b1cdbd2cSJim Jagielski <p> 76*b1cdbd2cSJim Jagielski Column names used as input to the findColumn method are case 77*b1cdbd2cSJim Jagielski insensitive. When several columns have the same name, then the value 78*b1cdbd2cSJim Jagielski of the first matching column will be returned. The column name option is 79*b1cdbd2cSJim Jagielski designed to be used when column names are used in the SQL 80*b1cdbd2cSJim Jagielski query. For columns that are NOT explicitly named in the query, it 81*b1cdbd2cSJim Jagielski is best to use column numbers. If column names are used, there is 82*b1cdbd2cSJim Jagielski no way for the programmer to guarantee that they actually refer to 83*b1cdbd2cSJim Jagielski the intended columns. 84*b1cdbd2cSJim Jagielski </p> 85*b1cdbd2cSJim Jagielski <p> 86*b1cdbd2cSJim Jagielski A ResultSet is automatically closed (disposed) by the Statement that 87*b1cdbd2cSJim Jagielski generated it when that Statement is closed, re-executed, or used 88*b1cdbd2cSJim Jagielski to retrieve the next result from a sequence of multiple results. 89*b1cdbd2cSJim Jagielski </p> 90*b1cdbd2cSJim Jagielski <p> 91*b1cdbd2cSJim Jagielski The number, types, and properties of a ResultSet's columns are 92*b1cdbd2cSJim Jagielski provided by the ResultSetMetaData object returned by the getMetaData 93*b1cdbd2cSJim Jagielski method. 94*b1cdbd2cSJim Jagielski </p> 95*b1cdbd2cSJim Jagielski */ 96*b1cdbd2cSJim Jagielskipublished service ResultSet 97*b1cdbd2cSJim Jagielski{ 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski /** optional for implementation; controls the releasing of resources 100*b1cdbd2cSJim Jagielski and the notification of registered listeners. 101*b1cdbd2cSJim Jagielski */ 102*b1cdbd2cSJim Jagielski [optional] interface com::sun::star::lang::XComponent; 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski /** freeing all resources of a result set. 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski <p> 108*b1cdbd2cSJim Jagielski The creating statement will still be open after disposing. 109*b1cdbd2cSJim Jagielski </p> 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski <p> 112*b1cdbd2cSJim Jagielski This interface is mandatory only for JDBC conformance, 113*b1cdbd2cSJim Jagielski otherwise it is optional. 114*b1cdbd2cSJim Jagielski </p> 115*b1cdbd2cSJim Jagielski */ 116*b1cdbd2cSJim Jagielski [optional] interface XCloseable; 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski // gives access to the properties. 119*b1cdbd2cSJim Jagielski interface com::sun::star::beans::XPropertySet; 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski /** controls the chaining of warnings, which may occur on every call 123*b1cdbd2cSJim Jagielski to the connected database. 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski <p> 126*b1cdbd2cSJim Jagielski Chained warnings from previous calls will be cleared before processing a new call. 127*b1cdbd2cSJim Jagielski </p> 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski <p> 130*b1cdbd2cSJim Jagielski This interface is mandatory only for JDBC conformance, otherwise it is optional. 131*b1cdbd2cSJim Jagielski </p> 132*b1cdbd2cSJim Jagielski */ 133*b1cdbd2cSJim Jagielski [optional] interface XWarningsSupplier; 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski /** provides the access to the result set description. 137*b1cdbd2cSJim Jagielski */ 138*b1cdbd2cSJim Jagielski interface XResultSetMetaDataSupplier; 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski /** is the interface for navigating on the rows on a result set. 142*b1cdbd2cSJim Jagielski */ 143*b1cdbd2cSJim Jagielski interface XResultSet; 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski /** is the interface for updating row data to the database. 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski <p> 149*b1cdbd2cSJim Jagielski The implementation is optional. 150*b1cdbd2cSJim Jagielski </p> 151*b1cdbd2cSJim Jagielski */ 152*b1cdbd2cSJim Jagielski [optional] interface XResultSetUpdate; 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski /** is the interface for accessing the data of the current row. 156*b1cdbd2cSJim Jagielski */ 157*b1cdbd2cSJim Jagielski interface XRow; 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski /** is used for locating a column by it's name. 161*b1cdbd2cSJim Jagielski */ 162*b1cdbd2cSJim Jagielski interface XColumnLocate; 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski /** is the interface for updating the data of the current row. 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski <p> 168*b1cdbd2cSJim Jagielski The implementation is optional. 169*b1cdbd2cSJim Jagielski </p> 170*b1cdbd2cSJim Jagielski */ 171*b1cdbd2cSJim Jagielski [optional] interface XRowUpdate; 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski /** defines the SQL cursor name that will be used by subsequent Statement 175*b1cdbd2cSJim Jagielski <code>execute</code> 176*b1cdbd2cSJim Jagielski methods. 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski <p> 180*b1cdbd2cSJim Jagielski This name can then be used in SQL positioned update/delete statements to 181*b1cdbd2cSJim Jagielski identify the current row in the ResultSet generated by this statement. If 182*b1cdbd2cSJim Jagielski the database doesn't support positioned update/delete, this property is 183*b1cdbd2cSJim Jagielski a noop. To insure that a cursor has the proper isolation level to support 184*b1cdbd2cSJim Jagielski updates, the cursor's SELECT statement should be of the form 185*b1cdbd2cSJim Jagielski 'select for update ...'. If the 'for update' phrase is omitted, 186*b1cdbd2cSJim Jagielski positioned updates may fail. 187*b1cdbd2cSJim Jagielski </p> 188*b1cdbd2cSJim Jagielski <p> 189*b1cdbd2cSJim Jagielski <b> 190*b1cdbd2cSJim Jagielski Note: 191*b1cdbd2cSJim Jagielski </b> 192*b1cdbd2cSJim Jagielski By definition, positioned update/delete 193*b1cdbd2cSJim Jagielski execution must be done by a different Statement than the one 194*b1cdbd2cSJim Jagielski which generated the ResultSet being used for positioning. Also, 195*b1cdbd2cSJim Jagielski cursor names must be unique within a connection. 196*b1cdbd2cSJim Jagielski </p> 197*b1cdbd2cSJim Jagielski */ 198*b1cdbd2cSJim Jagielski [optional, readonly, property] string CursorName; 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski /** retrieves the result set concurrency. 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski @see com::sun::star::sdbc::ResultSetConcurrency 204*b1cdbd2cSJim Jagielski */ 205*b1cdbd2cSJim Jagielski [readonly, property] long ResultSetConcurrency; 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski /** determines the result set type. 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski @see com::sun::star::sdbc::ResultSetType 211*b1cdbd2cSJim Jagielski */ 212*b1cdbd2cSJim Jagielski [readonly, property] long ResultSetType; 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski /** retrieves the direction for fetching rows from database tables 216*b1cdbd2cSJim Jagielski that is the default for result sets generated from this 217*b1cdbd2cSJim Jagielski <type scope="com::sun::star::sdbcx">Statement</type> 218*b1cdbd2cSJim Jagielski object. 219*b1cdbd2cSJim Jagielski <br/> 220*b1cdbd2cSJim Jagielski If this <code>Statement</code> object has not set a fetch direction, 221*b1cdbd2cSJim Jagielski the return value is implementation-specific. 222*b1cdbd2cSJim Jagielski */ 223*b1cdbd2cSJim Jagielski [property] long FetchDirection; 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski 226*b1cdbd2cSJim Jagielski /** retrieves the number of result set rows that is the default fetch size 227*b1cdbd2cSJim Jagielski for result sets generated from this 228*b1cdbd2cSJim Jagielski <type scope="com::sun::star::sdbcx">Statement</type> 229*b1cdbd2cSJim Jagielski object. 230*b1cdbd2cSJim Jagielski <br/> 231*b1cdbd2cSJim Jagielski If this 232*b1cdbd2cSJim Jagielski <type scope="com::sun::star::sdbcx">Statement</type> 233*b1cdbd2cSJim Jagielski object has not set a fetch size, 234*b1cdbd2cSJim Jagielski the return value is implementation-specific. 235*b1cdbd2cSJim Jagielski */ 236*b1cdbd2cSJim Jagielski [property] long FetchSize; 237*b1cdbd2cSJim Jagielski}; 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski//============================================================================= 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski}; }; }; }; 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski/*=========================================================================== 244*b1cdbd2cSJim Jagielski===========================================================================*/ 245*b1cdbd2cSJim Jagielski#endif 246