1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_sdbc_XSQLOutput_idl__ 28#define __com_sun_star_sdbc_XSQLOutput_idl__ 29 30#ifndef __com_sun_star_uno_XInterface_idl__ 31#include <com/sun/star/uno/XInterface.idl> 32#endif 33 34#ifndef __com_sun_star_util_Date_idl__ 35#include <com/sun/star/util/Date.idl> 36#endif 37 38#ifndef __com_sun_star_util_DateTime_idl__ 39#include <com/sun/star/util/DateTime.idl> 40#endif 41 42#ifndef __com_sun_star_util_Time_idl__ 43#include <com/sun/star/util/Time.idl> 44#endif 45 46 module com { module sun { module star { module io { 47 published interface XInputStream; 48};};};}; 49 50#ifndef __com_sun_star_sdbc_SQLException_idl__ 51#include <com/sun/star/sdbc/SQLException.idl> 52#endif 53 54 module com { module sun { module star { module sdbc { 55 56 published interface XRef; 57 published interface XArray; 58 published interface XBlob; 59 published interface XClob; 60 published interface XStruct; 61 published interface XSQLData; 62 63 64/** is used as an output stream for writing the attributes of a user-defined 65 type back to the database. This interface, used only for custom mapping, 66 is used by the driver, and its methods are never directly invoked 67 by a programmer. 68 69 70 <p> 71 When an object of a class implementing interface 72 <type scope="com::sun::star::sdbc">XSQLData</type> 73 is passed as an argument to a SQL statement, the JDBC driver calls 74 <method scope="com::sun::star::sdbc">SQLData::getSQLType</method> 75 to determine the kind of SQL datum being passed to the database. 76 <br/> 77 The driver then creates an instance of 78 <code>XSQLOutput</code> 79 and passes it to the method 80 <method scope="com::sun::star::sdbc">XSQLData::writeSQL</method> 81 . The method 82 <code>writeSQL</code> 83 in turn calls the appropriate 84 <code>XSQLOutput.writeXXX</code> 85 methods to write data from the 86 <type scope="com::sun::star::sdbc">XSQLData</type> 87 object to the 88 <code>XSQLOutput</code> 89 output stream as the representation of a SQL user-defined type.</p> 90 */ 91published interface XSQLOutput: com::sun::star::uno::XInterface 92{ 93 94 /** writes the next attribute to the stream as a string. 95 @param x 96 the value to pass to the database. 97 @throws SQLException 98 if a database access error occurs. 99 */ 100 void writeString([in]string x) raises (SQLException); 101 //------------------------------------------------------------------------- 102 103 /** writes the next attribute to the stream as boolean. 104 @param x 105 the value to pass to the database. 106 @throws SQLException 107 if a database access error occurs. 108 */ 109 void writeBoolean([in]boolean x) raises (SQLException); 110 //------------------------------------------------------------------------- 111 112 /** writes the next attribute to the stream as byte. 113 @param x 114 the value to pass to the database. 115 @throws SQLException 116 if a database access error occurs. 117 */ 118 void writeByte([in]byte x) raises (SQLException); 119 //------------------------------------------------------------------------- 120 121 /** writes the next attribute to the stream as short. 122 @param x 123 the value to pass to the database. 124 @throws SQLException 125 if a database access error occurs. 126 */ 127 void writeShort([in]short x) raises (SQLException); 128 //------------------------------------------------------------------------- 129 130 /** writes the next attribute to the stream as long. 131 @param x 132 the value to pass to the database. 133 @throws SQLException 134 if a database access error occurs. 135 */ 136 void writeInt([in]long x) raises (SQLException); 137 //------------------------------------------------------------------------- 138 139 /** writes the next attribute to the stream as hyper. 140 @param x 141 the value to pass to the database. 142 @throws SQLException 143 if a database access error occurs. 144 */ 145 void writeLong([in]hyper x) raises (SQLException); 146 //------------------------------------------------------------------------- 147 148 /** writes the next attribute to the stream as float. 149 @param x 150 the value to pass to the database. 151 @throws SQLException 152 if a database access error occurs. 153 */ 154 void writeFloat([in]float x) raises (SQLException); 155 //------------------------------------------------------------------------- 156 157 /** writes the next attribute to the stream as double. 158 @param x 159 the value to pass to the database. 160 @throws SQLException 161 if a database access error occurs. 162 */ 163 void writeDouble([in]double x) raises (SQLException); 164 //------------------------------------------------------------------------- 165 166 /** writes the next attribute to the stream as byte sequence. 167 @param x 168 the value to pass to the database. 169 @throws SQLException 170 if a database access error occurs. 171 */ 172 void writeBytes([in]sequence<byte> x) raises (SQLException); 173 //------------------------------------------------------------------------- 174 175 /** writes the next attribute to the stream as a date. 176 @param x 177 the value to pass to the database. 178 @throws SQLException 179 if a database access error occurs. 180 */ 181 void writeDate([in]com::sun::star::util::Date x) raises (SQLException); 182 //------------------------------------------------------------------------- 183 184 /** writes the next attribute to the stream as a time. 185 @param x 186 the value to pass to the database. 187 @throws SQLException 188 if a database access error occurs. 189 */ 190 void writeTime([in]com::sun::star::util::Time x) raises (SQLException); 191 //------------------------------------------------------------------------- 192 193 /** writes the next attribute to the stream as a datetime. 194 @param x 195 the value to pass to the database. 196 @throws SQLException 197 if a database access error occurs. 198 */ 199 void writeTimestamp([in]com::sun::star::util::DateTime x) 200 raises (SQLException); 201 //------------------------------------------------------------------------- 202 203 /** writes the next attribute to the stream as a stream of uninterpreted 204 bytes. 205 @param x 206 the value to pass to the database. 207 @throws SQLException 208 if a database access error occurs. 209 */ 210 void writeBinaryStream([in]com::sun::star::io::XInputStream x) 211 raises (SQLException); 212 //------------------------------------------------------------------------- 213 214 /** writes the next attribute to the stream as a stream of unicode string. 215 @param x 216 the value to pass to the database. 217 @throws SQLException 218 if a database access error occurs. 219 */ 220 void writeCharacterStream([in]com::sun::star::io::XInputStream x) 221 raises (SQLException); 222 //------------------------------------------------------------------------- 223 224 /** writes to the stream the data contained in the given 225 <code>XSQLData</code> object. 226 227 228 <p 229 >When the 230 <code>XSQLData</code> 231 object is 232 <NULL/> 233 , this method writes an SQL NULL to the stream. 234 Otherwise, it calls the 235 <member scope="com::sun::star::sdbc">XSQLData::writeSQL()</member> 236 method of the given object, which 237 writes the object's attributes to the stream. 238 The implementation of the method 239 <code>XSQLData::writeSQL()</code> 240 calls the appropriate 241 <code>XSQLOutput.writeXXX</code> 242 method(s) for writing each of the object's attributes in order. 243 <br/> 244 The attributes must be read from an 245 <type scope="com::sun::star::sdbc">XSQLInput</type> 246 input stream and written to an 247 <code>XSQLOutput</code> 248 output stream in the same order in which they were 249 listed in the SQL definition of the user-defined type. 250 </p> 251 @param x 252 the value to pass to the database. 253 @throws SQLException 254 if a database access error occurs. 255 */ 256 void writeObject([in]XSQLData x) raises (SQLException); 257 //------------------------------------------------------------------------- 258 259 /** writes a REF(&lt;structured-type&gt;) to the stream. 260 @param x 261 the value to pass to the database. 262 @throws SQLException 263 if a database access error occurs. 264 */ 265 void writeRef([in]XRef x) raises (SQLException); 266 //------------------------------------------------------------------------- 267 268 /** writes a BLOB to the stream. 269 @param x 270 the value to pass to the database. 271 @throws SQLException 272 if a database access error occurs. 273 */ 274 void writeBlob([in]XBlob x) raises (SQLException); 275 //------------------------------------------------------------------------- 276 277 /** writes a CLOB to the stream. 278 @param x 279 the value to pass to the database. 280 @throws SQLException 281 if a database access error occurs. 282 */ 283 void writeClob([in]XClob x) raises (SQLException); 284 //------------------------------------------------------------------------- 285 286 /** writes a structured-type to the stream. 287 @param x 288 the value to pass to the database. 289 @throws SQLException 290 if a database access error occurs. 291 */ 292 void writeStruct([in]XStruct x) raises (SQLException); 293 //------------------------------------------------------------------------- 294 295 /** writes an array to the stream. 296 @param x 297 the value to pass to the database. 298 @throws SQLException 299 if a database access error occurs. 300 */ 301 void writeArray([in]XArray x) raises (SQLException); 302}; 303 304//============================================================================= 305 306}; }; }; }; 307 308/*=========================================================================== 309===========================================================================*/ 310#endif 311