1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_RowSet_idl__ 28*cdf0e10cSrcweir#define __com_sun_star_sdb_RowSet_idl__ 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_RowSet_idl__ 31*cdf0e10cSrcweir#include <com/sun/star/sdbc/RowSet.idl> 32*cdf0e10cSrcweir#endif 33*cdf0e10cSrcweir 34*cdf0e10cSrcweirmodule com { module sun { module star { module sdbc { 35*cdf0e10cSrcweirpublished interface XConnection; 36*cdf0e10cSrcweir};};};}; 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_ResultSet_idl__ 39*cdf0e10cSrcweir#include <com/sun/star/sdb/ResultSet.idl> 40*cdf0e10cSrcweir#endif 41*cdf0e10cSrcweir 42*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_XCompletedExecution_idl__ 43*cdf0e10cSrcweir#include <com/sun/star/sdb/XCompletedExecution.idl> 44*cdf0e10cSrcweir#endif 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir module com { module sun { module star { module sdbcx { 47*cdf0e10cSrcweirpublished interface XDeleteRows; 48*cdf0e10cSrcweir};};};}; 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir module com { module sun { module star { module sdb { 51*cdf0e10cSrcweir 52*cdf0e10cSrcweirpublished interface XRowSetApproveBroadcaster; 53*cdf0e10cSrcweirpublished interface XResultSetAccess; 54*cdf0e10cSrcweirpublished interface XParametersSupplier; 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir/** is a client side RowSet, which use retrieves is data based on a database table, 58*cdf0e10cSrcweir a query or a SQL command or by a rowset reader, who mustn't support SQL. 59*cdf0e10cSrcweir The connection of the rowset is typically a named DataSource or a DataAccess component 60*cdf0e10cSrcweir or a previous instanciated connection. 61*cdf0e10cSrcweir <p> 62*cdf0e10cSrcweir Depending on the 63*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">ResultSetConcurrency</type> 64*cdf0e10cSrcweir , the RowSet caches all data or uses 65*cdf0e10cSrcweir an optimized way for retrieving the data, such as, refetching rows by their keys or 66*cdf0e10cSrcweir if provided, by their bookmarks. 67*cdf0e10cSrcweir </p> 68*cdf0e10cSrcweir <p> 69*cdf0e10cSrcweir In addition, it provides events for RowSet navigation and RowSet modifications 70*cdf0e10cSrcweir to approve the actions and to react on them. 71*cdf0e10cSrcweir @see com::sun::star::sdb::RowChangeAction 72*cdf0e10cSrcweir @see com::sun::star::sdb::RowChangeEvent 73*cdf0e10cSrcweir @see com::sun::star::sdb::RowsChangeEvent 74*cdf0e10cSrcweir </p> 75*cdf0e10cSrcweir 76*cdf0e10cSrcweir <h3>Notifications</h3> 77*cdf0e10cSrcweir <p>A row set is able to be operated in various ways, and additionally it notifies various changes in it's 78*cdf0e10cSrcweir state. Clients of this service can rely on a fixed order of notifications, depending on how they operate 79*cdf0e10cSrcweir on the component.</br> 80*cdf0e10cSrcweir The following describes the general order of all possible notifications which you can encounter when 81*cdf0e10cSrcweir working with a row set: 82*cdf0e10cSrcweir <table> 83*cdf0e10cSrcweir <tr><td valign="top"><em>approving</em></td> 84*cdf0e10cSrcweir <td valign="top">Before anything really happens, any veto listeners are called to approve the operation 85*cdf0e10cSrcweir which is just being done. This may be either a 86*cdf0e10cSrcweir <member>XRowSetApproveListener::approveCursorMove</member> or 87*cdf0e10cSrcweir <member>XRowSetApproveListener::approveRowChange</member> call. 88*cdf0e10cSrcweir @see XRowSetApproveListener 89*cdf0e10cSrcweir </td> 90*cdf0e10cSrcweir </tr> 91*cdf0e10cSrcweir <tr><td valign="top"><em>column values</em></td> 92*cdf0e10cSrcweir <td valign="top">If the opration includes changes in the values of the columns of the row set, then these are 93*cdf0e10cSrcweir notified before anything else (except requests for approval). 94*cdf0e10cSrcweir @see ResultSet 95*cdf0e10cSrcweir @see com::sun::star::sdbcx::XColumnsSupplier 96*cdf0e10cSrcweir </td> 97*cdf0e10cSrcweir </tr> 98*cdf0e10cSrcweir <tr><td valign="top"><em>operation done</em></td> 99*cdf0e10cSrcweir <td valign="top">When the operation is done, you get a notification about this. It may be a 100*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XRowSetListener::cursorMoved</member> or a 101*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XRowSetListener::rowChanged</member> call or a 102*cdf0e10cSrcweir <member>XRowsChangeListener::rowsChanged</member> call. 103*cdf0e10cSrcweir </td> 104*cdf0e10cSrcweir </tr> 105*cdf0e10cSrcweir <tr><td valign="top"><em>row state</em></td> 106*cdf0e10cSrcweir <td valign="top">If the operation leads to a change in the state of the <member>IsModified</member> 107*cdf0e10cSrcweir and/or <member>IsNew</member> property, this is notified next (in this order). 108*cdf0e10cSrcweir </td> 109*cdf0e10cSrcweir </tr> 110*cdf0e10cSrcweir <tr><td valign="top"><em>row count</em></td> 111*cdf0e10cSrcweir <td valign="top">If the operation leads to new knowledge about the number of rows in the result set, 112*cdf0e10cSrcweir the respective changes in the <member>RowCount</member> and <member>IsRowCountFinal</member> 113*cdf0e10cSrcweir are notified last (in this order). 114*cdf0e10cSrcweir </td> 115*cdf0e10cSrcweir </tr> 116*cdf0e10cSrcweir </table> 117*cdf0e10cSrcweir </p> 118*cdf0e10cSrcweir 119*cdf0e10cSrcweir <br/> 120*cdf0e10cSrcweir 121*cdf0e10cSrcweir <p>The following matrix shows the notifications which apply to the different operations: 122*cdf0e10cSrcweir <table border="1" frame="all"> 123*cdf0e10cSrcweir <tr><td/><td><strong>approveCursorMove</strong></td><td><strong>approveRowChange</strong></td> 124*cdf0e10cSrcweir <td><strong>column values</strong></td> 125*cdf0e10cSrcweir <td><strong>cursorMoved</strong></td><td><strong>rowChanged</strong></td> 126*cdf0e10cSrcweir <td><strong>rowsChanged</strong></td> 127*cdf0e10cSrcweir <td><strong>IsModified</strong></td><td><strong>IsNew</strong></td> 128*cdf0e10cSrcweir <td><strong>RowCount</strong></td><td><strong>IsRowCountFinal</strong></td> 129*cdf0e10cSrcweir </tr> 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir <tr><td><type scope="com::sun::star::sdbc">XResultSet</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir <tr><td align="right"><em>next</em></td><td align="center">X</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> 134*cdf0e10cSrcweir <tr><td align="right"><em>beforeFirst</em></td><td align="center">X</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/><td/></tr> 135*cdf0e10cSrcweir <tr><td align="right"><em>afterLast</em></td><td align="center">X</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></tr> 136*cdf0e10cSrcweir <tr><td align="right"><em>first</em></td><td align="center">X</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></tr> 137*cdf0e10cSrcweir <tr><td align="right"><em>last</em></td><td align="center">X</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></tr> 138*cdf0e10cSrcweir <tr><td align="right"><em>absolute</em></td><td align="center">X</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></tr> 139*cdf0e10cSrcweir <tr><td align="right"><em>relative</em></td><td align="center">X</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></tr> 140*cdf0e10cSrcweir <tr><td align="right"><em>previous</em></td><td align="center">X</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></tr> 141*cdf0e10cSrcweir <tr><td align="right"><em>refreshRow</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> 142*cdf0e10cSrcweir <tr><td align="right"><em>cancelRowUpdates</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td/><td/><td/></tr> 143*cdf0e10cSrcweir 144*cdf0e10cSrcweir <tr><td><type scope="com::sun::star::sdbc">XResultSetUpdate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> 145*cdf0e10cSrcweir 146*cdf0e10cSrcweir <tr><td align="right"><em>insertRow</em></td><td/><td align="center">X</td><td align="center">X</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> 147*cdf0e10cSrcweir <tr><td align="right"><em>updateRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td/><td/><td/></tr> 148*cdf0e10cSrcweir <tr><td align="right"><em>deleteRow</em></td><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> 149*cdf0e10cSrcweir <tr><td align="right"><em>moveToInsertRow</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td></tr> 150*cdf0e10cSrcweir <tr><td align="right"><em>moveToCurrentRow</em></td><td align="center">X</td><td/><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> 151*cdf0e10cSrcweir 152*cdf0e10cSrcweir <tr><td><type scope="com::sun::star::sdbcx">XDeleteRows</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> 153*cdf0e10cSrcweir 154*cdf0e10cSrcweir <tr><td align="right"><em>deleteRows</em></td><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> 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir <tr><td><type scope="com::sun::star::sdbcx">XRowLocate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir <tr><td align="right"><em>moveToBookmark</em></td><td align="center">X</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/><td/></tr> 159*cdf0e10cSrcweir <tr><td align="right"><em>moveRelativeToBookmark</em></td><td align="center">X</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></tr> 160*cdf0e10cSrcweir 161*cdf0e10cSrcweir </tr> 162*cdf0e10cSrcweir </table> 163*cdf0e10cSrcweir </p> 164*cdf0e10cSrcweir 165*cdf0e10cSrcweir <h3>Deletions</h3> 166*cdf0e10cSrcweir <p>Via <member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member>, you can delete the current row of a 167*cdf0e10cSrcweir <type>RowSet</type>. This deleted row then doesn't vanish immediately, but is still present, and subsequent calls to 168*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSet::rowDeleted</member> will return <TRUE/>. The deleted row "vanishes" from 169*cdf0e10cSrcweir the <type>RowSet</type> as soon as the cursor is moved away from it.<br/> 170*cdf0e10cSrcweir As a consequence, the behaviour of several other methods is affected:<br/> 171*cdf0e10cSrcweir <dl> 172*cdf0e10cSrcweir <dt><member scope="com::sun::star::sdbc">XResultSet::getRow</member></dt> 173*cdf0e10cSrcweir <dd>returns the position of the cursor, which has not been changed by the deletion.</dd> 174*cdf0e10cSrcweir 175*cdf0e10cSrcweir <dt><type scope="com::sun::star::sdbc">XResultSet</type>: <code>next</code>, <code>first</code>, <code>last</code>, <code>absolute</code>, 176*cdf0e10cSrcweir <code>relative</code>, <code>previous</code>, <code>beforeFirst</code>, <code>afterLast</code></dt> 177*cdf0e10cSrcweir <dd>will let the deleted row vanish from the result set. As a consequence, the <member>RowCount</member> 178*cdf0e10cSrcweir will decrease when you do such a move operation after deleting a row.<br/> 179*cdf0e10cSrcweir A special case to note is the <code>next<code> call: When you delete row, say, 180*cdf0e10cSrcweir <code>15</code>, followed by <code>next</code>, then your <type>RowSet</type> afterwards 181*cdf0e10cSrcweir still is on row 15, since the deleted row vanished with the move operation.</dd> 182*cdf0e10cSrcweir 183*cdf0e10cSrcweir <dt><member scope="com::sun::star::sdbc">XResultSet::refreshRow</member></dt> 184*cdf0e10cSrcweir <dd>will throw an exception when the cursor is on a deleted row.</dd> 185*cdf0e10cSrcweir 186*cdf0e10cSrcweir <dt><type scope="com::sun::star::sdbc">XRow</type>: <code>getFoo</code></dt> 187*cdf0e10cSrcweir <dd>will return an empty value when the cursor is on a deleted row.</dd> 188*cdf0e10cSrcweir 189*cdf0e10cSrcweir <dt><member scope="com::sun::star::sdbcx">XRowLocate::getBookmark</member></dt> 190*cdf0e10cSrcweir <dd>will throw an exception when the cursor is on a deleted row.</dd> 191*cdf0e10cSrcweir 192*cdf0e10cSrcweir <dt><type scope="com::sun::star::sdbc">XRowUpdate</type>: <code>updateFoo</code></dt> 193*cdf0e10cSrcweir <dd>will throw an exception when the cursor is on a deleted row.</dd> 194*cdf0e10cSrcweir 195*cdf0e10cSrcweir <dt><member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member></dt> 196*cdf0e10cSrcweir <dd>will throw an exception when the cursor is on a deleted row.</dd> 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir <dt><member scope="com::sun::star::sdbc">XResultSetUpdate::moveToInsertRow</member></dt> 199*cdf0e10cSrcweir <dd>will let the deleted row vanish from the result set. As a consequence, the <member>RowCount</member> 200*cdf0e10cSrcweir will decrease. Also, subsequent calls to 201*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSetUpdate::moveToCurrentRow</member> will not 202*cdf0e10cSrcweir be able to move back to the deleted row (since it vanished), but only to the 203*cdf0e10cSrcweir row after the deleted row.</dd> 204*cdf0e10cSrcweir </dl> 205*cdf0e10cSrcweir </p> 206*cdf0e10cSrcweir */ 207*cdf0e10cSrcweirpublished service RowSet 208*cdf0e10cSrcweir{ 209*cdf0e10cSrcweir service com::sun::star::sdbc::RowSet; 210*cdf0e10cSrcweir 211*cdf0e10cSrcweir service com::sun::star::sdb::ResultSet; 212*cdf0e10cSrcweir 213*cdf0e10cSrcweir /** can be used to allow an interaction handler to supply missing data during a execute process. 214*cdf0e10cSrcweir 215*cdf0e10cSrcweir <p>If you want a row set to be based on a parametrized query, you will usually use 216*cdf0e10cSrcweir the <type scope="com::sun::star::sdbc">XParameters</type> interface.<br/> 217*cdf0e10cSrcweir However, you can also choose to let an interaction handler supply such data. For this, you may 218*cdf0e10cSrcweir for instance instantiate an <type>InteractionHandler</type>, which asks the user for the 219*cdf0e10cSrcweir data, or you may write your own one, which supplies the data from somewhere else. 220*cdf0e10cSrcweir The default implementation will only ask for parameters which aren't set before through the <type scope="com::sun::star::sdbc">XParameters</type> interface.</p> 221*cdf0e10cSrcweir 222*cdf0e10cSrcweir @see com::sun::star::sdb::InteractionHandler 223*cdf0e10cSrcweir */ 224*cdf0e10cSrcweir interface com::sun::star::sdb::XCompletedExecution; 225*cdf0e10cSrcweir 226*cdf0e10cSrcweir /** approving of actions performed on the rowset. 227*cdf0e10cSrcweir 228*cdf0e10cSrcweir <p>The support of this interface implies a sematical extension to the <type scope="com::sun::star::sdbc">XResultSetUpdate</type> 229*cdf0e10cSrcweir interface which is supported via the <type scope="com::sun::star::sdbc">ResultSet</type>.</p> 230*cdf0e10cSrcweir 231*cdf0e10cSrcweir @see XResultSetUpdate 232*cdf0e10cSrcweir */ 233*cdf0e10cSrcweir interface XRowSetApproveBroadcaster; 234*cdf0e10cSrcweir 235*cdf0e10cSrcweir /** is the interface for updating row data to the database. 236*cdf0e10cSrcweir 237*cdf0e10cSrcweir <p>The optional support of this interface is already implied with the support of the <type scope="com::sun::star::sdbc">ResultSet</type> service.</p> 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir <p>However, note that the additional support of the <type>XRowSetApproveBroadcaster</type> interface results 240*cdf0e10cSrcweir in a sematical extension: the methods <member scope="com::sun::star::sdbc">XResultSetUpdate::insertRow</member>, 241*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">XResultSetUpdate::updateRow</member> and <member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member> 242*cdf0e10cSrcweir will now throw the <type>RowSetVetoException</type> if the action which is to be performed was vetoed 243*cdf0e10cSrcweir by one of the <type>XRowSetApproveListener</type>'s.</p> 244*cdf0e10cSrcweir */ 245*cdf0e10cSrcweir [optional] interface com::sun::star::sdbc::XResultSetUpdate; 246*cdf0e10cSrcweir 247*cdf0e10cSrcweir /** is the interface for deleting more than one row, identified by it's bookmark. 248*cdf0e10cSrcweir 249*cdf0e10cSrcweir <p>The optional support of this interface is already implied with the support of the <type scope="com::sun::star::sdbcx">ResultSet</type> service.</p> 250*cdf0e10cSrcweir 251*cdf0e10cSrcweir <p>However, note that the additional support of the <type>XRowSetApproveBroadcaster</type> interface results 252*cdf0e10cSrcweir in a sematical extension: the method <member scope="com::sun::star::sdbcx">XDeleteRows::deleteRows</member> 253*cdf0e10cSrcweir will now throw the <type>RowSetVetoException</type> if the deletion was vetoed 254*cdf0e10cSrcweir by one of the <type>XRowSetApproveListener</type>'s.</p> 255*cdf0e10cSrcweir */ 256*cdf0e10cSrcweir [optional] interface com::sun::star::sdbcx::XDeleteRows; 257*cdf0e10cSrcweir 258*cdf0e10cSrcweir /** creates a second result set which is based on the same data. 259*cdf0e10cSrcweir <p> 260*cdf0e10cSrcweir The new result set is interoperable with the row set which created it, 261*cdf0e10cSrcweir e.g., you can exchange bookmarks between both sets. 262*cdf0e10cSrcweir </p> 263*cdf0e10cSrcweir <p> 264*cdf0e10cSrcweir If the row set is not alive (i.e., it was not executed before), 265*cdf0e10cSrcweir <NULL/> 266*cdf0e10cSrcweir is returned. 267*cdf0e10cSrcweir </p> 268*cdf0e10cSrcweir */ 269*cdf0e10cSrcweir interface XResultSetAccess; 270*cdf0e10cSrcweir 271*cdf0e10cSrcweir /** gives access to the parameters contained in the SQL statement represented by the component. 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir <p>If your <code>RowSet</code> is bound to an SQL command or query which contains parameters, or has 274*cdf0e10cSrcweir a <member>Filter</member> or <member>Order</member> which contains parameters, then those can be accessed 275*cdf0e10cSrcweir using the <code>XParametersSupplier</code> interface.</p> 276*cdf0e10cSrcweir 277*cdf0e10cSrcweir <p>The returned container contains parameter objects which do allow write access to the parameters (which 278*cdf0e10cSrcweir is equivalent to using the <type scope="com::sun::star::sdbc">XParameters</type> interface inherited from 279*cdf0e10cSrcweir <type scope="com::sun::star::sdbc">RowSet</type>). Additionally, they provide information about the parameters, 280*cdf0e10cSrcweir such as their name (if they have one), their type, and the like.</p> 281*cdf0e10cSrcweir */ 282*cdf0e10cSrcweir [optional] interface XParametersSupplier; 283*cdf0e10cSrcweir 284*cdf0e10cSrcweir /** is the connection generated by a DataSource or by a URL. It could 285*cdf0e10cSrcweir also be set from outside. When set from outside the RowSet is not responsible for the closing of the connection. 286*cdf0e10cSrcweir */ 287*cdf0e10cSrcweir [property] com::sun::star::sdbc::XConnection ActiveConnection; 288*cdf0e10cSrcweir 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir /** is the name of the datasource to use, this could be a named datasource 291*cdf0e10cSrcweir or the URL of a data access component. 292*cdf0e10cSrcweir */ 293*cdf0e10cSrcweir [property] string DataSourceName; 294*cdf0e10cSrcweir 295*cdf0e10cSrcweir 296*cdf0e10cSrcweir /** is the command which should be executed, the type of command depends 297*cdf0e10cSrcweir on the CommandType. 298*cdf0e10cSrcweir 299*cdf0e10cSrcweir <p>In case of a <member>CommandType</member> of <member>CommandType::COMMAND</member>, 300*cdf0e10cSrcweir means in case the <member>Command</member> specifies an SQL statement, the inherited 301*cdf0e10cSrcweir <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member> 302*cdf0e10cSrcweir becomes relevant:<br/> 303*cdf0e10cSrcweir It then can be to used to specify whether the SQL statement should be analyzed on the 304*cdf0e10cSrcweir client side before sending it to the database server.<br/> 305*cdf0e10cSrcweir The default value for <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member> 306*cdf0e10cSrcweir is <TRUE/>. By switching it to <FALSE/>, you can pass backend-specific SQL statements, 307*cdf0e10cSrcweir which are not standard SQL, to your database.</p> 308*cdf0e10cSrcweir 309*cdf0e10cSrcweir @see com::sun::star::sdb::CommandType 310*cdf0e10cSrcweir @see com::sun::star::sdbc::RowSet::EscapeProcessing 311*cdf0e10cSrcweir */ 312*cdf0e10cSrcweir [property] string Command; 313*cdf0e10cSrcweir 314*cdf0e10cSrcweir /** is the type of the command. 315*cdf0e10cSrcweir @see com::sun::star::sdb::CommandType 316*cdf0e10cSrcweir */ 317*cdf0e10cSrcweir [property] long CommandType; 318*cdf0e10cSrcweir 319*cdf0e10cSrcweir /** is the command which is currently used. 320*cdf0e10cSrcweir @see com::sun::star::sdb::CommandType 321*cdf0e10cSrcweir */ 322*cdf0e10cSrcweir [readonly, property] string ActiveCommand; 323*cdf0e10cSrcweir 324*cdf0e10cSrcweir 325*cdf0e10cSrcweir /** indicates whether all results should be discarded or not. 326*cdf0e10cSrcweir */ 327*cdf0e10cSrcweir [property] boolean IgnoreResult; 328*cdf0e10cSrcweir 329*cdf0e10cSrcweir 330*cdf0e10cSrcweir /** additional filter for a rowset. 331*cdf0e10cSrcweir */ 332*cdf0e10cSrcweir [property] string Filter; 333*cdf0e10cSrcweir 334*cdf0e10cSrcweir 335*cdf0e10cSrcweir /** indicates whether the filter should be applied or not, 336*cdf0e10cSrcweir default is <FALSE/>. 337*cdf0e10cSrcweir */ 338*cdf0e10cSrcweir [property] boolean ApplyFilter; 339*cdf0e10cSrcweir 340*cdf0e10cSrcweir /** additional having clause for the row set 341*cdf0e10cSrcweir */ 342*cdf0e10cSrcweir [optional,property] string HavingClause; 343*cdf0e10cSrcweir 344*cdf0e10cSrcweir /** additional group by for the row set 345*cdf0e10cSrcweir */ 346*cdf0e10cSrcweir [optional,property] string GroupBy; 347*cdf0e10cSrcweir 348*cdf0e10cSrcweir /** is a additional sort order definition for a rowset. 349*cdf0e10cSrcweir */ 350*cdf0e10cSrcweir [property] string Order; 351*cdf0e10cSrcweir 352*cdf0e10cSrcweir 353*cdf0e10cSrcweir /** indicates the privileges for insert, update, and delete. 354*cdf0e10cSrcweir @see com::sun::star::sdbcx::Privilege 355*cdf0e10cSrcweir */ 356*cdf0e10cSrcweir [readonly, property] long Privileges; 357*cdf0e10cSrcweir 358*cdf0e10cSrcweir 359*cdf0e10cSrcweir /** indicates that the current row is modified. 360*cdf0e10cSrcweir */ 361*cdf0e10cSrcweir [readonly, property] boolean IsModified; 362*cdf0e10cSrcweir 363*cdf0e10cSrcweir 364*cdf0e10cSrcweir /** indicates that the current row is going to be inserted to the database. 365*cdf0e10cSrcweir */ 366*cdf0e10cSrcweir [readonly, property] boolean IsNew; 367*cdf0e10cSrcweir 368*cdf0e10cSrcweir 369*cdf0e10cSrcweir /** contains the number of rows accessed in a the data source. 370*cdf0e10cSrcweir */ 371*cdf0e10cSrcweir [readonly, property] long RowCount; 372*cdf0e10cSrcweir 373*cdf0e10cSrcweir 374*cdf0e10cSrcweir /** indicates that all rows of te row set have been counted. 375*cdf0e10cSrcweir */ 376*cdf0e10cSrcweir [readonly, property] boolean IsRowCountFinal; 377*cdf0e10cSrcweir 378*cdf0e10cSrcweir 379*cdf0e10cSrcweir /** is the name of the table which should be updated, this is usually used 380*cdf0e10cSrcweir for queries which relate to more than one table. 381*cdf0e10cSrcweir */ 382*cdf0e10cSrcweir [optional, property] string UpdateTableName; 383*cdf0e10cSrcweir 384*cdf0e10cSrcweir /** is the name of the table catalog 385*cdf0e10cSrcweir */ 386*cdf0e10cSrcweir [optional, property] string UpdateCatalogName; 387*cdf0e10cSrcweir 388*cdf0e10cSrcweir 389*cdf0e10cSrcweir /** is the name of the table schema. 390*cdf0e10cSrcweir */ 391*cdf0e10cSrcweir [optional, property] string UpdateSchemaName; 392*cdf0e10cSrcweir}; 393*cdf0e10cSrcweir 394*cdf0e10cSrcweir//============================================================================= 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir}; }; }; }; 397*cdf0e10cSrcweir 398*cdf0e10cSrcweir/*=========================================================================== 399*cdf0e10cSrcweir===========================================================================*/ 400*cdf0e10cSrcweir#endif 401