1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This code is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License version 2 only, as 8 * published by the Free Software Foundation. Oracle designates this 9 * particular file as subject to the "Classpath" exception as provided 10 * by Oracle in the LICENSE file that accompanied this code. 11 * 12 * This code is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 * version 2 for more details (a copy is included in the LICENSE file that 16 * accompanied this code). 17 * 18 * You should have received a copy of the GNU General Public License version 19 * 2 along with this work; if not, write to the Free Software Foundation, 20 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 21 * 22 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23 * or visit www.oracle.com if you need additional information or have any 24 * questions. 25 */ 26 27 package java.sql; 28 29 import java.math.BigDecimal; 30 import java.util.Calendar; 31 import java.io.Reader; 32 import java.io.InputStream; 33 34 /** 35 * A table of data representing a database result set, which 36 * is usually generated by executing a statement that queries the database. 37 * 38 * <P>A <code>ResultSet</code> object maintains a cursor pointing 39 * to its current row of data. Initially the cursor is positioned 40 * before the first row. The <code>next</code> method moves the 41 * cursor to the next row, and because it returns <code>false</code> 42 * when there are no more rows in the <code>ResultSet</code> object, 43 * it can be used in a <code>while</code> loop to iterate through 44 * the result set. 45 * <P> 46 * A default <code>ResultSet</code> object is not updatable and 47 * has a cursor that moves forward only. Thus, you can 48 * iterate through it only once and only from the first row to the 49 * last row. It is possible to 50 * produce <code>ResultSet</code> objects that are scrollable and/or 51 * updatable. The following code fragment, in which <code>con</code> 52 * is a valid <code>Connection</code> object, illustrates how to make 53 * a result set that is scrollable and insensitive to updates by others, and 54 * that is updatable. See <code>ResultSet</code> fields for other 55 * options. 56 * <PRE> 57 * 58 * Statement stmt = con.createStatement( 59 * ResultSet.TYPE_SCROLL_INSENSITIVE, 60 * ResultSet.CONCUR_UPDATABLE); 61 * ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); 62 * // rs will be scrollable, will not show changes made by others, 63 * // and will be updatable 64 * 65 * </PRE> 66 * The <code>ResultSet</code> interface provides 67 * <i>getter</i> methods (<code>getBoolean</code>, <code>getLong</code>, and so on) 68 * for retrieving column values from the current row. 69 * Values can be retrieved using either the index number of the 70 * column or the name of the column. In general, using the 71 * column index will be more efficient. Columns are numbered from 1. 72 * For maximum portability, result set columns within each row should be 73 * read in left-to-right order, and each column should be read only once. 74 * 75 * <P>For the getter methods, a JDBC driver attempts 76 * to convert the underlying data to the Java type specified in the 77 * getter method and returns a suitable Java value. The JDBC specification 78 * has a table showing the allowable mappings from SQL types to Java types 79 * that can be used by the <code>ResultSet</code> getter methods. 80 * <P> 81 * <P>Column names used as input to getter methods are case 82 * insensitive. When a getter method is called with 83 * a column name and several columns have the same name, 84 * the value of the first matching column will be returned. 85 * The column name option is 86 * designed to be used when column names are used in the SQL 87 * query that generated the result set. 88 * For columns that are NOT explicitly named in the query, it 89 * is best to use column numbers. If column names are used, the 90 * programmer should take care to guarantee that they uniquely refer to 91 * the intended columns, which can be assured with the SQL <i>AS</i> clause. 92 * <P> 93 * A set of updater methods were added to this interface 94 * in the JDBC 2.0 API (Java<sup><font size=-2>TM</font></sup> 2 SDK, 95 * Standard Edition, version 1.2). The comments regarding parameters 96 * to the getter methods also apply to parameters to the 97 * updater methods. 98 *<P> 99 * The updater methods may be used in two ways: 100 * <ol> 101 * <LI>to update a column value in the current row. In a scrollable 102 * <code>ResultSet</code> object, the cursor can be moved backwards 103 * and forwards, to an absolute position, or to a position 104 * relative to the current row. 105 * The following code fragment updates the <code>NAME</code> column 106 * in the fifth row of the <code>ResultSet</code> object 107 * <code>rs</code> and then uses the method <code>updateRow</code> 108 * to update the data source table from which <code>rs</code> was derived. 109 * <PRE> 110 * 111 * rs.absolute(5); // moves the cursor to the fifth row of rs 112 * rs.updateString("NAME", "AINSWORTH"); // updates the 113 * // <code>NAME</code> column of row 5 to be <code>AINSWORTH</code> 114 * rs.updateRow(); // updates the row in the data source 115 * 116 * </PRE> 117 * <LI>to insert column values into the insert row. An updatable 118 * <code>ResultSet</code> object has a special row associated with 119 * it that serves as a staging area for building a row to be inserted. 120 * The following code fragment moves the cursor to the insert row, builds 121 * a three-column row, and inserts it into <code>rs</code> and into 122 * the data source table using the method <code>insertRow</code>. 123 * <PRE> 124 * 125 * rs.moveToInsertRow(); // moves cursor to the insert row 126 * rs.updateString(1, "AINSWORTH"); // updates the 127 * // first column of the insert row to be <code>AINSWORTH</code> 128 * rs.updateInt(2,35); // updates the second column to be <code>35</code> 129 * rs.updateBoolean(3, true); // updates the third column to <code>true</code> 130 * rs.insertRow(); 131 * rs.moveToCurrentRow(); 132 * 133 * </PRE> 134 * </ol> 135 * <P>A <code>ResultSet</code> object is automatically closed when the 136 * <code>Statement</code> object that 137 * generated it is closed, re-executed, or used 138 * to retrieve the next result from a sequence of multiple results. 139 * 140 * <P>The number, types and properties of a <code>ResultSet</code> 141 * object's columns are provided by the <code>ResultSetMetaData</code> 142 * object returned by the <code>ResultSet.getMetaData</code> method. 143 * 144 * @see Statement#executeQuery 145 * @see Statement#getResultSet 146 * @see ResultSetMetaData 147 */ 148 149 public interface ResultSet extends Wrapper, AutoCloseable { 150 151 /** 152 * Moves the cursor froward one row from its current position. 153 * A <code>ResultSet</code> cursor is initially positioned 154 * before the first row; the first call to the method 155 * <code>next</code> makes the first row the current row; the 156 * second call makes the second row the current row, and so on. 157 * <p> 158 * When a call to the <code>next</code> method returns <code>false</code>, 159 * the cursor is positioned after the last row. Any 160 * invocation of a <code>ResultSet</code> method which requires a 161 * current row will result in a <code>SQLException</code> being thrown. 162 * If the result set type is <code>TYPE_FORWARD_ONLY</code>, it is vendor specified 163 * whether their JDBC driver implementation will return <code>false</code> or 164 * throw an <code>SQLException</code> on a 165 * subsequent call to <code>next</code>. 166 * 167 * <P>If an input stream is open for the current row, a call 168 * to the method <code>next</code> will 169 * implicitly close it. A <code>ResultSet</code> object's 170 * warning chain is cleared when a new row is read. 171 * 172 * @return <code>true</code> if the new current row is valid; 173 * <code>false</code> if there are no more rows 174 * @exception SQLException if a database access error occurs or this method is 175 * called on a closed result set 176 */ next()177 boolean next() throws SQLException; 178 179 180 /** 181 * Releases this <code>ResultSet</code> object's database and 182 * JDBC resources immediately instead of waiting for 183 * this to happen when it is automatically closed. 184 * 185 * <P>The closing of a <code>ResultSet</code> object does <strong>not</strong> close the <code>Blob</code>, 186 * <code>Clob</code> or <code>NClob</code> objects created by the <code>ResultSet</code>. <code>Blob</code>, 187 * <code>Clob</code> or <code>NClob</code> objects remain valid for at least the duration of the 188 * transaction in which they are creataed, unless their <code>free</code> method is invoked. 189 *<p> 190 * When a <code>ResultSet</code> is closed, any <code>ResultSetMetaData</code> 191 * instances that were created by calling the <code>getMetaData</code> 192 * method remain accessible. 193 * 194 * <P><B>Note:</B> A <code>ResultSet</code> object 195 * is automatically closed by the 196 * <code>Statement</code> object that generated it when 197 * that <code>Statement</code> object is closed, 198 * re-executed, or is used to retrieve the next result from a 199 * sequence of multiple results. 200 *<p> 201 * Calling the method <code>close</code> on a <code>ResultSet</code> 202 * object that is already closed is a no-op. 203 * <P> 204 * <p> 205 * 206 * @exception SQLException if a database access error occurs 207 */ close()208 void close() throws SQLException; 209 210 /** 211 * Reports whether 212 * the last column read had a value of SQL <code>NULL</code>. 213 * Note that you must first call one of the getter methods 214 * on a column to try to read its value and then call 215 * the method <code>wasNull</code> to see if the value read was 216 * SQL <code>NULL</code>. 217 * 218 * @return <code>true</code> if the last column value read was SQL 219 * <code>NULL</code> and <code>false</code> otherwise 220 * @exception SQLException if a database access error occurs or this method is 221 * called on a closed result set 222 */ wasNull()223 boolean wasNull() throws SQLException; 224 225 // Methods for accessing results by column index 226 227 /** 228 * Retrieves the value of the designated column in the current row 229 * of this <code>ResultSet</code> object as 230 * a <code>String</code> in the Java programming language. 231 * 232 * @param columnIndex the first column is 1, the second is 2, ... 233 * @return the column value; if the value is SQL <code>NULL</code>, the 234 * value returned is <code>null</code> 235 * @exception SQLException if the columnIndex is not valid; 236 * if a database access error occurs or this method is 237 * called on a closed result set 238 */ getString(int columnIndex)239 String getString(int columnIndex) throws SQLException; 240 241 /** 242 * Retrieves the value of the designated column in the current row 243 * of this <code>ResultSet</code> object as 244 * a <code>boolean</code> in the Java programming language. 245 * 246 * <P>If the designated column has a datatype of CHAR or VARCHAR 247 * and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT 248 * and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype 249 * of CHAR or VARCHAR 250 * and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT 251 * and contains a 1, a value of <code>true</code> is returned. 252 * 253 * @param columnIndex the first column is 1, the second is 2, ... 254 * @return the column value; if the value is SQL <code>NULL</code>, the 255 * value returned is <code>false</code> 256 * @exception SQLException if the columnIndex is not valid; 257 * if a database access error occurs or this method is 258 * called on a closed result set 259 */ getBoolean(int columnIndex)260 boolean getBoolean(int columnIndex) throws SQLException; 261 262 /** 263 * Retrieves the value of the designated column in the current row 264 * of this <code>ResultSet</code> object as 265 * a <code>byte</code> in the Java programming language. 266 * 267 * @param columnIndex the first column is 1, the second is 2, ... 268 * @return the column value; if the value is SQL <code>NULL</code>, the 269 * value returned is <code>0</code> 270 * @exception SQLException if the columnIndex is not valid; 271 * if a database access error occurs or this method is 272 * called on a closed result set 273 */ getByte(int columnIndex)274 byte getByte(int columnIndex) throws SQLException; 275 276 /** 277 * Retrieves the value of the designated column in the current row 278 * of this <code>ResultSet</code> object as 279 * a <code>short</code> in the Java programming language. 280 * 281 * @param columnIndex the first column is 1, the second is 2, ... 282 * @return the column value; if the value is SQL <code>NULL</code>, the 283 * value returned is <code>0</code> 284 * @exception SQLException if the columnIndex is not valid; 285 * if a database access error occurs or this method is 286 * called on a closed result set 287 */ getShort(int columnIndex)288 short getShort(int columnIndex) throws SQLException; 289 290 /** 291 * Retrieves the value of the designated column in the current row 292 * of this <code>ResultSet</code> object as 293 * an <code>int</code> in the Java programming language. 294 * 295 * @param columnIndex the first column is 1, the second is 2, ... 296 * @return the column value; if the value is SQL <code>NULL</code>, the 297 * value returned is <code>0</code> 298 * @exception SQLException if the columnIndex is not valid; 299 * if a database access error occurs or this method is 300 * called on a closed result set 301 */ getInt(int columnIndex)302 int getInt(int columnIndex) throws SQLException; 303 304 /** 305 * Retrieves the value of the designated column in the current row 306 * of this <code>ResultSet</code> object as 307 * a <code>long</code> in the Java programming language. 308 * 309 * @param columnIndex the first column is 1, the second is 2, ... 310 * @return the column value; if the value is SQL <code>NULL</code>, the 311 * value returned is <code>0</code> 312 * @exception SQLException if the columnIndex is not valid; 313 * if a database access error occurs or this method is 314 * called on a closed result set 315 */ getLong(int columnIndex)316 long getLong(int columnIndex) throws SQLException; 317 318 /** 319 * Retrieves the value of the designated column in the current row 320 * of this <code>ResultSet</code> object as 321 * a <code>float</code> in the Java programming language. 322 * 323 * @param columnIndex the first column is 1, the second is 2, ... 324 * @return the column value; if the value is SQL <code>NULL</code>, the 325 * value returned is <code>0</code> 326 * @exception SQLException if the columnIndex is not valid; 327 * if a database access error occurs or this method is 328 * called on a closed result set 329 */ getFloat(int columnIndex)330 float getFloat(int columnIndex) throws SQLException; 331 332 /** 333 * Retrieves the value of the designated column in the current row 334 * of this <code>ResultSet</code> object as 335 * a <code>double</code> in the Java programming language. 336 * 337 * @param columnIndex the first column is 1, the second is 2, ... 338 * @return the column value; if the value is SQL <code>NULL</code>, the 339 * value returned is <code>0</code> 340 * @exception SQLException if the columnIndex is not valid; 341 * if a database access error occurs or this method is 342 * called on a closed result set 343 */ getDouble(int columnIndex)344 double getDouble(int columnIndex) throws SQLException; 345 346 /** 347 * Retrieves the value of the designated column in the current row 348 * of this <code>ResultSet</code> object as 349 * a <code>java.sql.BigDecimal</code> in the Java programming language. 350 * 351 * @param columnIndex the first column is 1, the second is 2, ... 352 * @param scale the number of digits to the right of the decimal point 353 * @return the column value; if the value is SQL <code>NULL</code>, the 354 * value returned is <code>null</code> 355 * @exception SQLException if the columnIndex is not valid; 356 * if a database access error occurs or this method is 357 * called on a closed result set 358 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 359 * this method 360 * @deprecated Deprecated 361 */ 362 @Deprecated // Android-added - also changed deprecated tag to contain text. getBigDecimal(int columnIndex, int scale)363 BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException; 364 365 /** 366 * Retrieves the value of the designated column in the current row 367 * of this <code>ResultSet</code> object as 368 * a <code>byte</code> array in the Java programming language. 369 * The bytes represent the raw values returned by the driver. 370 * 371 * @param columnIndex the first column is 1, the second is 2, ... 372 * @return the column value; if the value is SQL <code>NULL</code>, the 373 * value returned is <code>null</code> 374 * @exception SQLException if the columnIndex is not valid; 375 * if a database access error occurs or this method is 376 * called on a closed result set 377 */ getBytes(int columnIndex)378 byte[] getBytes(int columnIndex) throws SQLException; 379 380 /** 381 * Retrieves the value of the designated column in the current row 382 * of this <code>ResultSet</code> object as 383 * a <code>java.sql.Date</code> object in the Java programming language. 384 * 385 * @param columnIndex the first column is 1, the second is 2, ... 386 * @return the column value; if the value is SQL <code>NULL</code>, the 387 * value returned is <code>null</code> 388 * @exception SQLException if the columnIndex is not valid; 389 * if a database access error occurs or this method is 390 * called on a closed result set 391 */ getDate(int columnIndex)392 java.sql.Date getDate(int columnIndex) throws SQLException; 393 394 /** 395 * Retrieves the value of the designated column in the current row 396 * of this <code>ResultSet</code> object as 397 * a <code>java.sql.Time</code> object in the Java programming language. 398 * 399 * @param columnIndex the first column is 1, the second is 2, ... 400 * @return the column value; if the value is SQL <code>NULL</code>, the 401 * value returned is <code>null</code> 402 * @exception SQLException if the columnIndex is not valid; 403 * if a database access error occurs or this method is 404 * called on a closed result set 405 */ getTime(int columnIndex)406 java.sql.Time getTime(int columnIndex) throws SQLException; 407 408 /** 409 * Retrieves the value of the designated column in the current row 410 * of this <code>ResultSet</code> object as 411 * a <code>java.sql.Timestamp</code> object in the Java programming language. 412 * 413 * @param columnIndex the first column is 1, the second is 2, ... 414 * @return the column value; if the value is SQL <code>NULL</code>, the 415 * value returned is <code>null</code> 416 * @exception SQLException if the columnIndex is not valid; 417 * if a database access error occurs or this method is 418 * called on a closed result set 419 */ getTimestamp(int columnIndex)420 java.sql.Timestamp getTimestamp(int columnIndex) throws SQLException; 421 422 /** 423 * Retrieves the value of the designated column in the current row 424 * of this <code>ResultSet</code> object as 425 * a stream of ASCII characters. The value can then be read in chunks from the 426 * stream. This method is particularly 427 * suitable for retrieving large <code>LONGVARCHAR</code> values. 428 * The JDBC driver will 429 * do any necessary conversion from the database format into ASCII. 430 * 431 * <P><B>Note:</B> All the data in the returned stream must be 432 * read prior to getting the value of any other column. The next 433 * call to a getter method implicitly closes the stream. Also, a 434 * stream may return <code>0</code> when the method 435 * <code>InputStream.available</code> 436 * is called whether there is data available or not. 437 * 438 * @param columnIndex the first column is 1, the second is 2, ... 439 * @return a Java input stream that delivers the database column value 440 * as a stream of one-byte ASCII characters; 441 * if the value is SQL <code>NULL</code>, the 442 * value returned is <code>null</code> 443 * @exception SQLException if the columnIndex is not valid; 444 * if a database access error occurs or this method is 445 * called on a closed result set 446 */ getAsciiStream(int columnIndex)447 java.io.InputStream getAsciiStream(int columnIndex) throws SQLException; 448 449 /** 450 * Retrieves the value of the designated column in the current row 451 * of this <code>ResultSet</code> object as 452 * as a stream of two-byte 3 characters. The first byte is 453 * the high byte; the second byte is the low byte. 454 * 455 * The value can then be read in chunks from the 456 * stream. This method is particularly 457 * suitable for retrieving large <code>LONGVARCHAR</code>values. The 458 * JDBC driver will do any necessary conversion from the database 459 * format into Unicode. 460 * 461 * <P><B>Note:</B> All the data in the returned stream must be 462 * read prior to getting the value of any other column. The next 463 * call to a getter method implicitly closes the stream. 464 * Also, a stream may return <code>0</code> when the method 465 * <code>InputStream.available</code> 466 * is called, whether there is data available or not. 467 * 468 * @param columnIndex the first column is 1, the second is 2, ... 469 * @return a Java input stream that delivers the database column value 470 * as a stream of two-byte Unicode characters; 471 * if the value is SQL <code>NULL</code>, the value returned is 472 * <code>null</code> 473 * 474 * @exception SQLException if the columnIndex is not valid; 475 * if a database access error occurs or this method is 476 * called on a closed result set 477 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 478 * this method 479 * @deprecated use <code>getCharacterStream</code> in place of 480 * <code>getUnicodeStream</code> 481 */ getUnicodeStream(int columnIndex)482 java.io.InputStream getUnicodeStream(int columnIndex) throws SQLException; 483 484 /** 485 * Retrieves the value of the designated column in the current row 486 * of this <code>ResultSet</code> object as a stream of 487 * uninterpreted bytes. The value can then be read in chunks from the 488 * stream. This method is particularly 489 * suitable for retrieving large <code>LONGVARBINARY</code> values. 490 * 491 * <P><B>Note:</B> All the data in the returned stream must be 492 * read prior to getting the value of any other column. The next 493 * call to a getter method implicitly closes the stream. Also, a 494 * stream may return <code>0</code> when the method 495 * <code>InputStream.available</code> 496 * is called whether there is data available or not. 497 * 498 * @param columnIndex the first column is 1, the second is 2, ... 499 * @return a Java input stream that delivers the database column value 500 * as a stream of uninterpreted bytes; 501 * if the value is SQL <code>NULL</code>, the value returned is 502 * <code>null</code> 503 * @exception SQLException if the columnIndex is not valid; 504 * if a database access error occurs or this method is 505 * called on a closed result set 506 */ getBinaryStream(int columnIndex)507 java.io.InputStream getBinaryStream(int columnIndex) 508 throws SQLException; 509 510 511 // Methods for accessing results by column label 512 513 /** 514 * Retrieves the value of the designated column in the current row 515 * of this <code>ResultSet</code> object as 516 * a <code>String</code> in the Java programming language. 517 * 518 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 519 * @return the column value; if the value is SQL <code>NULL</code>, the 520 * value returned is <code>null</code> 521 * @exception SQLException if the columnLabel is not valid; 522 * if a database access error occurs or this method is 523 * called on a closed result set 524 */ getString(String columnLabel)525 String getString(String columnLabel) throws SQLException; 526 527 /** 528 * Retrieves the value of the designated column in the current row 529 * of this <code>ResultSet</code> object as 530 * a <code>boolean</code> in the Java programming language. 531 * 532 * <P>If the designated column has a datatype of CHAR or VARCHAR 533 * and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT 534 * and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype 535 * of CHAR or VARCHAR 536 * and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT 537 * and contains a 1, a value of <code>true</code> is returned. 538 * 539 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 540 * @return the column value; if the value is SQL <code>NULL</code>, the 541 * value returned is <code>false</code> 542 * @exception SQLException if the columnLabel is not valid; 543 * if a database access error occurs or this method is 544 * called on a closed result set 545 */ getBoolean(String columnLabel)546 boolean getBoolean(String columnLabel) throws SQLException; 547 548 /** 549 * Retrieves the value of the designated column in the current row 550 * of this <code>ResultSet</code> object as 551 * a <code>byte</code> in the Java programming language. 552 * 553 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 554 * @return the column value; if the value is SQL <code>NULL</code>, the 555 * value returned is <code>0</code> 556 * @exception SQLException if the columnLabel is not valid; 557 * if a database access error occurs or this method is 558 * called on a closed result set 559 */ getByte(String columnLabel)560 byte getByte(String columnLabel) throws SQLException; 561 562 /** 563 * Retrieves the value of the designated column in the current row 564 * of this <code>ResultSet</code> object as 565 * a <code>short</code> in the Java programming language. 566 * 567 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 568 * @return the column value; if the value is SQL <code>NULL</code>, the 569 * value returned is <code>0</code> 570 * @exception SQLException if the columnLabel is not valid; 571 * if a database access error occurs or this method is 572 * called on a closed result set 573 */ getShort(String columnLabel)574 short getShort(String columnLabel) throws SQLException; 575 576 /** 577 * Retrieves the value of the designated column in the current row 578 * of this <code>ResultSet</code> object as 579 * an <code>int</code> in the Java programming language. 580 * 581 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 582 * @return the column value; if the value is SQL <code>NULL</code>, the 583 * value returned is <code>0</code> 584 * @exception SQLException if the columnLabel is not valid; 585 * if a database access error occurs or this method is 586 * called on a closed result set 587 */ getInt(String columnLabel)588 int getInt(String columnLabel) throws SQLException; 589 590 /** 591 * Retrieves the value of the designated column in the current row 592 * of this <code>ResultSet</code> object as 593 * a <code>long</code> in the Java programming language. 594 * 595 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 596 * @return the column value; if the value is SQL <code>NULL</code>, the 597 * value returned is <code>0</code> 598 * @exception SQLException if the columnLabel is not valid; 599 * if a database access error occurs or this method is 600 * called on a closed result set 601 */ getLong(String columnLabel)602 long getLong(String columnLabel) throws SQLException; 603 604 /** 605 * Retrieves the value of the designated column in the current row 606 * of this <code>ResultSet</code> object as 607 * a <code>float</code> in the Java programming language. 608 * 609 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 610 * @return the column value; if the value is SQL <code>NULL</code>, the 611 * value returned is <code>0</code> 612 * @exception SQLException if the columnLabel is not valid; 613 * if a database access error occurs or this method is 614 * called on a closed result set 615 */ getFloat(String columnLabel)616 float getFloat(String columnLabel) throws SQLException; 617 618 /** 619 * Retrieves the value of the designated column in the current row 620 * of this <code>ResultSet</code> object as 621 * a <code>double</code> in the Java programming language. 622 * 623 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 624 * @return the column value; if the value is SQL <code>NULL</code>, the 625 * value returned is <code>0</code> 626 * @exception SQLException if the columnLabel is not valid; 627 * if a database access error occurs or this method is 628 * called on a closed result set 629 */ getDouble(String columnLabel)630 double getDouble(String columnLabel) throws SQLException; 631 632 /** 633 * Retrieves the value of the designated column in the current row 634 * of this <code>ResultSet</code> object as 635 * a <code>java.math.BigDecimal</code> in the Java programming language. 636 * 637 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 638 * @param scale the number of digits to the right of the decimal point 639 * @return the column value; if the value is SQL <code>NULL</code>, the 640 * value returned is <code>null</code> 641 * @exception SQLException if the columnLabel is not valid; 642 * if a database access error occurs or this method is 643 * called on a closed result set 644 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 645 * this method 646 * @deprecated Deprecated 647 */ 648 @Deprecated // Android-added - also changed deprecated tag to contain text. getBigDecimal(String columnLabel, int scale)649 BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException; 650 651 /** 652 * Retrieves the value of the designated column in the current row 653 * of this <code>ResultSet</code> object as 654 * a <code>byte</code> array in the Java programming language. 655 * The bytes represent the raw values returned by the driver. 656 * 657 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 658 * @return the column value; if the value is SQL <code>NULL</code>, the 659 * value returned is <code>null</code> 660 * @exception SQLException if the columnLabel is not valid; 661 * if a database access error occurs or this method is 662 * called on a closed result set 663 */ getBytes(String columnLabel)664 byte[] getBytes(String columnLabel) throws SQLException; 665 666 /** 667 * Retrieves the value of the designated column in the current row 668 * of this <code>ResultSet</code> object as 669 * a <code>java.sql.Date</code> object in the Java programming language. 670 * 671 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 672 * @return the column value; if the value is SQL <code>NULL</code>, the 673 * value returned is <code>null</code> 674 * @exception SQLException if the columnLabel is not valid; 675 * if a database access error occurs or this method is 676 * called on a closed result set 677 */ getDate(String columnLabel)678 java.sql.Date getDate(String columnLabel) throws SQLException; 679 680 /** 681 * Retrieves the value of the designated column in the current row 682 * of this <code>ResultSet</code> object as 683 * a <code>java.sql.Time</code> object in the Java programming language. 684 * 685 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 686 * @return the column value; 687 * if the value is SQL <code>NULL</code>, 688 * the value returned is <code>null</code> 689 * @exception SQLException if the columnLabel is not valid; 690 * if a database access error occurs or this method is 691 * called on a closed result set 692 */ getTime(String columnLabel)693 java.sql.Time getTime(String columnLabel) throws SQLException; 694 695 /** 696 * Retrieves the value of the designated column in the current row 697 * of this <code>ResultSet</code> object as 698 * a <code>java.sql.Timestamp</code> object in the Java programming language. 699 * 700 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 701 * @return the column value; if the value is SQL <code>NULL</code>, the 702 * value returned is <code>null</code> 703 * @exception SQLException if the columnLabel is not valid; 704 * if a database access error occurs or this method is 705 * called on a closed result set 706 */ getTimestamp(String columnLabel)707 java.sql.Timestamp getTimestamp(String columnLabel) throws SQLException; 708 709 /** 710 * Retrieves the value of the designated column in the current row 711 * of this <code>ResultSet</code> object as a stream of 712 * ASCII characters. The value can then be read in chunks from the 713 * stream. This method is particularly 714 * suitable for retrieving large <code>LONGVARCHAR</code> values. 715 * The JDBC driver will 716 * do any necessary conversion from the database format into ASCII. 717 * 718 * <P><B>Note:</B> All the data in the returned stream must be 719 * read prior to getting the value of any other column. The next 720 * call to a getter method implicitly closes the stream. Also, a 721 * stream may return <code>0</code> when the method <code>available</code> 722 * is called whether there is data available or not. 723 * 724 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 725 * @return a Java input stream that delivers the database column value 726 * as a stream of one-byte ASCII characters. 727 * If the value is SQL <code>NULL</code>, 728 * the value returned is <code>null</code>. 729 * @exception SQLException if the columnLabel is not valid; 730 * if a database access error occurs or this method is 731 * called on a closed result set 732 */ getAsciiStream(String columnLabel)733 java.io.InputStream getAsciiStream(String columnLabel) throws SQLException; 734 735 /** 736 * Retrieves the value of the designated column in the current row 737 * of this <code>ResultSet</code> object as a stream of two-byte 738 * Unicode characters. The first byte is the high byte; the second 739 * byte is the low byte. 740 * 741 * The value can then be read in chunks from the 742 * stream. This method is particularly 743 * suitable for retrieving large <code>LONGVARCHAR</code> values. 744 * The JDBC technology-enabled driver will 745 * do any necessary conversion from the database format into Unicode. 746 * 747 * <P><B>Note:</B> All the data in the returned stream must be 748 * read prior to getting the value of any other column. The next 749 * call to a getter method implicitly closes the stream. 750 * Also, a stream may return <code>0</code> when the method 751 * <code>InputStream.available</code> is called, whether there 752 * is data available or not. 753 * 754 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 755 * @return a Java input stream that delivers the database column value 756 * as a stream of two-byte Unicode characters. 757 * If the value is SQL <code>NULL</code>, the value returned 758 * is <code>null</code>. 759 * @exception SQLException if the columnLabel is not valid; 760 * if a database access error occurs or this method is 761 * called on a closed result set 762 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 763 * this method 764 * @deprecated use <code>getCharacterStream</code> instead 765 */ getUnicodeStream(String columnLabel)766 java.io.InputStream getUnicodeStream(String columnLabel) throws SQLException; 767 768 /** 769 * Retrieves the value of the designated column in the current row 770 * of this <code>ResultSet</code> object as a stream of uninterpreted 771 * <code>byte</code>s. 772 * The value can then be read in chunks from the 773 * stream. This method is particularly 774 * suitable for retrieving large <code>LONGVARBINARY</code> 775 * values. 776 * 777 * <P><B>Note:</B> All the data in the returned stream must be 778 * read prior to getting the value of any other column. The next 779 * call to a getter method implicitly closes the stream. Also, a 780 * stream may return <code>0</code> when the method <code>available</code> 781 * is called whether there is data available or not. 782 * 783 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 784 * @return a Java input stream that delivers the database column value 785 * as a stream of uninterpreted bytes; 786 * if the value is SQL <code>NULL</code>, the result is <code>null</code> 787 * @exception SQLException if the columnLabel is not valid; 788 * if a database access error occurs or this method is 789 * called on a closed result set 790 */ getBinaryStream(String columnLabel)791 java.io.InputStream getBinaryStream(String columnLabel) 792 throws SQLException; 793 794 795 // Advanced features: 796 797 /** 798 * Retrieves the first warning reported by calls on this 799 * <code>ResultSet</code> object. 800 * Subsequent warnings on this <code>ResultSet</code> object 801 * will be chained to the <code>SQLWarning</code> object that 802 * this method returns. 803 * 804 * <P>The warning chain is automatically cleared each time a new 805 * row is read. This method may not be called on a <code>ResultSet</code> 806 * object that has been closed; doing so will cause an 807 * <code>SQLException</code> to be thrown. 808 * <P> 809 * <B>Note:</B> This warning chain only covers warnings caused 810 * by <code>ResultSet</code> methods. Any warning caused by 811 * <code>Statement</code> methods 812 * (such as reading OUT parameters) will be chained on the 813 * <code>Statement</code> object. 814 * 815 * @return the first <code>SQLWarning</code> object reported or 816 * <code>null</code> if there are none 817 * @exception SQLException if a database access error occurs or this method is 818 * called on a closed result set 819 */ getWarnings()820 SQLWarning getWarnings() throws SQLException; 821 822 /** 823 * Clears all warnings reported on this <code>ResultSet</code> object. 824 * After this method is called, the method <code>getWarnings</code> 825 * returns <code>null</code> until a new warning is 826 * reported for this <code>ResultSet</code> object. 827 * 828 * @exception SQLException if a database access error occurs or this method is 829 * called on a closed result set 830 */ clearWarnings()831 void clearWarnings() throws SQLException; 832 833 /** 834 * Retrieves the name of the SQL cursor used by this <code>ResultSet</code> 835 * object. 836 * 837 * <P>In SQL, a result table is retrieved through a cursor that is 838 * named. The current row of a result set can be updated or deleted 839 * using a positioned update/delete statement that references the 840 * cursor name. To insure that the cursor has the proper isolation 841 * level to support update, the cursor's <code>SELECT</code> statement 842 * should be of the form <code>SELECT FOR UPDATE</code>. If 843 * <code>FOR UPDATE</code> is omitted, the positioned updates may fail. 844 * 845 * <P>The JDBC API supports this SQL feature by providing the name of the 846 * SQL cursor used by a <code>ResultSet</code> object. 847 * The current row of a <code>ResultSet</code> object 848 * is also the current row of this SQL cursor. 849 * 850 * @return the SQL name for this <code>ResultSet</code> object's cursor 851 * @exception SQLException if a database access error occurs or this method is called on a closed result set 852 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 853 * this method 854 */ getCursorName()855 String getCursorName() throws SQLException; 856 857 /** 858 * Retrieves the number, types and properties of 859 * this <code>ResultSet</code> object's columns. 860 * 861 * @return the description of this <code>ResultSet</code> object's columns 862 * @exception SQLException if a database access error occurs or this method is 863 * called on a closed result set 864 */ getMetaData()865 ResultSetMetaData getMetaData() throws SQLException; 866 867 /** 868 * <p>Gets the value of the designated column in the current row 869 * of this <code>ResultSet</code> object as 870 * an <code>Object</code> in the Java programming language. 871 * 872 * <p>This method will return the value of the given column as a 873 * Java object. The type of the Java object will be the default 874 * Java object type corresponding to the column's SQL type, 875 * following the mapping for built-in types specified in the JDBC 876 * specification. If the value is an SQL <code>NULL</code>, 877 * the driver returns a Java <code>null</code>. 878 * 879 * <p>This method may also be used to read database-specific 880 * abstract data types. 881 * 882 * In the JDBC 2.0 API, the behavior of method 883 * <code>getObject</code> is extended to materialize 884 * data of SQL user-defined types. 885 * <p> 886 * If <code>Connection.getTypeMap</code> does not throw a 887 * <code>SQLFeatureNotSupportedException</code>, 888 * then when a column contains a structured or distinct value, 889 * the behavior of this method is as 890 * if it were a call to: <code>getObject(columnIndex, 891 * this.getStatement().getConnection().getTypeMap())</code>. 892 * 893 * If <code>Connection.getTypeMap</code> does throw a 894 * <code>SQLFeatureNotSupportedException</code>, 895 * then structured values are not supported, and distinct values 896 * are mapped to the default Java class as determined by the 897 * underlying SQL type of the DISTINCT type. 898 * 899 * @param columnIndex the first column is 1, the second is 2, ... 900 * @return a <code>java.lang.Object</code> holding the column value 901 * @exception SQLException if the columnIndex is not valid; 902 * if a database access error occurs or this method is 903 * called on a closed result set 904 */ getObject(int columnIndex)905 Object getObject(int columnIndex) throws SQLException; 906 907 /** 908 * <p>Gets the value of the designated column in the current row 909 * of this <code>ResultSet</code> object as 910 * an <code>Object</code> in the Java programming language. 911 * 912 * <p>This method will return the value of the given column as a 913 * Java object. The type of the Java object will be the default 914 * Java object type corresponding to the column's SQL type, 915 * following the mapping for built-in types specified in the JDBC 916 * specification. If the value is an SQL <code>NULL</code>, 917 * the driver returns a Java <code>null</code>. 918 * <P> 919 * This method may also be used to read database-specific 920 * abstract data types. 921 * <P> 922 * In the JDBC 2.0 API, the behavior of the method 923 * <code>getObject</code> is extended to materialize 924 * data of SQL user-defined types. When a column contains 925 * a structured or distinct value, the behavior of this method is as 926 * if it were a call to: <code>getObject(columnIndex, 927 * this.getStatement().getConnection().getTypeMap())</code>. 928 * 929 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 930 * @return a <code>java.lang.Object</code> holding the column value 931 * @exception SQLException if the columnLabel is not valid; 932 * if a database access error occurs or this method is 933 * called on a closed result set 934 */ getObject(String columnLabel)935 Object getObject(String columnLabel) throws SQLException; 936 937 //---------------------------------------------------------------- 938 939 /** 940 * Maps the given <code>ResultSet</code> column label to its 941 * <code>ResultSet</code> column index. 942 * 943 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 944 * @return the column index of the given column name 945 * @exception SQLException if the <code>ResultSet</code> object 946 * does not contain a column labeled <code>columnLabel</code>, a database access error occurs 947 * or this method is called on a closed result set 948 */ findColumn(String columnLabel)949 int findColumn(String columnLabel) throws SQLException; 950 951 952 //--------------------------JDBC 2.0----------------------------------- 953 954 //--------------------------------------------------------------------- 955 // Getters and Setters 956 //--------------------------------------------------------------------- 957 958 /** 959 * Retrieves the value of the designated column in the current row 960 * of this <code>ResultSet</code> object as a 961 * <code>java.io.Reader</code> object. 962 * @return a <code>java.io.Reader</code> object that contains the column 963 * value; if the value is SQL <code>NULL</code>, the value returned is 964 * <code>null</code> in the Java programming language. 965 * @param columnIndex the first column is 1, the second is 2, ... 966 * @exception SQLException if the columnIndex is not valid; 967 * if a database access error occurs or this method is 968 * called on a closed result set 969 * @since 1.2 970 */ getCharacterStream(int columnIndex)971 java.io.Reader getCharacterStream(int columnIndex) throws SQLException; 972 973 /** 974 * Retrieves the value of the designated column in the current row 975 * of this <code>ResultSet</code> object as a 976 * <code>java.io.Reader</code> object. 977 * 978 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 979 * @return a <code>java.io.Reader</code> object that contains the column 980 * value; if the value is SQL <code>NULL</code>, the value returned is 981 * <code>null</code> in the Java programming language 982 * @exception SQLException if the columnLabel is not valid; 983 * if a database access error occurs or this method is 984 * called on a closed result set 985 * @since 1.2 986 */ getCharacterStream(String columnLabel)987 java.io.Reader getCharacterStream(String columnLabel) throws SQLException; 988 989 /** 990 * Retrieves the value of the designated column in the current row 991 * of this <code>ResultSet</code> object as a 992 * <code>java.math.BigDecimal</code> with full precision. 993 * 994 * @param columnIndex the first column is 1, the second is 2, ... 995 * @return the column value (full precision); 996 * if the value is SQL <code>NULL</code>, the value returned is 997 * <code>null</code> in the Java programming language. 998 * @exception SQLException if the columnIndex is not valid; 999 * if a database access error occurs or this method is 1000 * called on a closed result set 1001 * @since 1.2 1002 */ getBigDecimal(int columnIndex)1003 BigDecimal getBigDecimal(int columnIndex) throws SQLException; 1004 1005 /** 1006 * Retrieves the value of the designated column in the current row 1007 * of this <code>ResultSet</code> object as a 1008 * <code>java.math.BigDecimal</code> with full precision. 1009 * 1010 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1011 * @return the column value (full precision); 1012 * if the value is SQL <code>NULL</code>, the value returned is 1013 * <code>null</code> in the Java programming language. 1014 * @exception SQLException if the columnLabel is not valid; 1015 * if a database access error occurs or this method is 1016 * called on a closed result set 1017 * @since 1.2 1018 * 1019 */ getBigDecimal(String columnLabel)1020 BigDecimal getBigDecimal(String columnLabel) throws SQLException; 1021 1022 //--------------------------------------------------------------------- 1023 // Traversal/Positioning 1024 //--------------------------------------------------------------------- 1025 1026 /** 1027 * Retrieves whether the cursor is before the first row in 1028 * this <code>ResultSet</code> object. 1029 * <p> 1030 * <strong>Note:</strong>Support for the <code>isBeforeFirst</code> method 1031 * is optional for <code>ResultSet</code>s with a result 1032 * set type of <code>TYPE_FORWARD_ONLY</code> 1033 * 1034 * @return <code>true</code> if the cursor is before the first row; 1035 * <code>false</code> if the cursor is at any other position or the 1036 * result set contains no rows 1037 * @exception SQLException if a database access error occurs or this method is 1038 * called on a closed result set 1039 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1040 * this method 1041 * @since 1.2 1042 */ isBeforeFirst()1043 boolean isBeforeFirst() throws SQLException; 1044 1045 /** 1046 * Retrieves whether the cursor is after the last row in 1047 * this <code>ResultSet</code> object. 1048 * <p> 1049 * <strong>Note:</strong>Support for the <code>isAfterLast</code> method 1050 * is optional for <code>ResultSet</code>s with a result 1051 * set type of <code>TYPE_FORWARD_ONLY</code> 1052 * 1053 * @return <code>true</code> if the cursor is after the last row; 1054 * <code>false</code> if the cursor is at any other position or the 1055 * result set contains no rows 1056 * @exception SQLException if a database access error occurs or this method is 1057 * called on a closed result set 1058 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1059 * this method 1060 * @since 1.2 1061 */ isAfterLast()1062 boolean isAfterLast() throws SQLException; 1063 1064 /** 1065 * Retrieves whether the cursor is on the first row of 1066 * this <code>ResultSet</code> object. 1067 * <p> 1068 * <strong>Note:</strong>Support for the <code>isFirst</code> method 1069 * is optional for <code>ResultSet</code>s with a result 1070 * set type of <code>TYPE_FORWARD_ONLY</code> 1071 * 1072 * @return <code>true</code> if the cursor is on the first row; 1073 * <code>false</code> otherwise 1074 * @exception SQLException if a database access error occurs or this method is 1075 * called on a closed result set 1076 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1077 * this method 1078 * @since 1.2 1079 */ isFirst()1080 boolean isFirst() throws SQLException; 1081 1082 /** 1083 * Retrieves whether the cursor is on the last row of 1084 * this <code>ResultSet</code> object. 1085 * <strong>Note:</strong> Calling the method <code>isLast</code> may be expensive 1086 * because the JDBC driver 1087 * might need to fetch ahead one row in order to determine 1088 * whether the current row is the last row in the result set. 1089 * <p> 1090 * <strong>Note:</strong> Support for the <code>isLast</code> method 1091 * is optional for <code>ResultSet</code>s with a result 1092 * set type of <code>TYPE_FORWARD_ONLY</code> 1093 * @return <code>true</code> if the cursor is on the last row; 1094 * <code>false</code> otherwise 1095 * @exception SQLException if a database access error occurs or this method is 1096 * called on a closed result set 1097 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1098 * this method 1099 * @since 1.2 1100 */ isLast()1101 boolean isLast() throws SQLException; 1102 1103 /** 1104 * Moves the cursor to the front of 1105 * this <code>ResultSet</code> object, just before the 1106 * first row. This method has no effect if the result set contains no rows. 1107 * 1108 * @exception SQLException if a database access error 1109 * occurs; this method is called on a closed result set or the 1110 * result set type is <code>TYPE_FORWARD_ONLY</code> 1111 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1112 * this method 1113 * @since 1.2 1114 */ beforeFirst()1115 void beforeFirst() throws SQLException; 1116 1117 /** 1118 * Moves the cursor to the end of 1119 * this <code>ResultSet</code> object, just after the 1120 * last row. This method has no effect if the result set contains no rows. 1121 * @exception SQLException if a database access error 1122 * occurs; this method is called on a closed result set 1123 * or the result set type is <code>TYPE_FORWARD_ONLY</code> 1124 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1125 * this method 1126 * @since 1.2 1127 */ afterLast()1128 void afterLast() throws SQLException; 1129 1130 /** 1131 * Moves the cursor to the first row in 1132 * this <code>ResultSet</code> object. 1133 * 1134 * @return <code>true</code> if the cursor is on a valid row; 1135 * <code>false</code> if there are no rows in the result set 1136 * @exception SQLException if a database access error 1137 * occurs; this method is called on a closed result set 1138 * or the result set type is <code>TYPE_FORWARD_ONLY</code> 1139 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1140 * this method 1141 * @since 1.2 1142 */ first()1143 boolean first() throws SQLException; 1144 1145 /** 1146 * Moves the cursor to the last row in 1147 * this <code>ResultSet</code> object. 1148 * 1149 * @return <code>true</code> if the cursor is on a valid row; 1150 * <code>false</code> if there are no rows in the result set 1151 * @exception SQLException if a database access error 1152 * occurs; this method is called on a closed result set 1153 * or the result set type is <code>TYPE_FORWARD_ONLY</code> 1154 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1155 * this method 1156 * @since 1.2 1157 */ last()1158 boolean last() throws SQLException; 1159 1160 /** 1161 * Retrieves the current row number. The first row is number 1, the 1162 * second number 2, and so on. 1163 * <p> 1164 * <strong>Note:</strong>Support for the <code>getRow</code> method 1165 * is optional for <code>ResultSet</code>s with a result 1166 * set type of <code>TYPE_FORWARD_ONLY</code> 1167 * 1168 * @return the current row number; <code>0</code> if there is no current row 1169 * @exception SQLException if a database access error occurs 1170 * or this method is called on a closed result set 1171 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1172 * this method 1173 * @since 1.2 1174 */ getRow()1175 int getRow() throws SQLException; 1176 1177 /** 1178 * Moves the cursor to the given row number in 1179 * this <code>ResultSet</code> object. 1180 * 1181 * <p>If the row number is positive, the cursor moves to 1182 * the given row number with respect to the 1183 * beginning of the result set. The first row is row 1, the second 1184 * is row 2, and so on. 1185 * 1186 * <p>If the given row number is negative, the cursor moves to 1187 * an absolute row position with respect to 1188 * the end of the result set. For example, calling the method 1189 * <code>absolute(-1)</code> positions the 1190 * cursor on the last row; calling the method <code>absolute(-2)</code> 1191 * moves the cursor to the next-to-last row, and so on. 1192 * 1193 * <p>If the row number specified is zero, the cursor is moved to 1194 * before the first row. 1195 * 1196 * <p>An attempt to position the cursor beyond the first/last row in 1197 * the result set leaves the cursor before the first row or after 1198 * the last row. 1199 * 1200 * <p><B>Note:</B> Calling <code>absolute(1)</code> is the same 1201 * as calling <code>first()</code>. Calling <code>absolute(-1)</code> 1202 * is the same as calling <code>last()</code>. 1203 * 1204 * @param row the number of the row to which the cursor should move. 1205 * A value of zero indicates that the cursor will be positioned 1206 * before the first row; a positive number indicates the row number 1207 * counting from the beginning of the result set; a negative number 1208 * indicates the row number counting from the end of the result set 1209 * @return <code>true</code> if the cursor is moved to a position in this 1210 * <code>ResultSet</code> object; 1211 * <code>false</code> if the cursor is before the first row or after the 1212 * last row 1213 * @exception SQLException if a database access error 1214 * occurs; this method is called on a closed result set 1215 * or the result set type is <code>TYPE_FORWARD_ONLY</code> 1216 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1217 * this method 1218 * @since 1.2 1219 */ absolute( int row )1220 boolean absolute( int row ) throws SQLException; 1221 1222 /** 1223 * Moves the cursor a relative number of rows, either positive or negative. 1224 * Attempting to move beyond the first/last row in the 1225 * result set positions the cursor before/after the 1226 * the first/last row. Calling <code>relative(0)</code> is valid, but does 1227 * not change the cursor position. 1228 * 1229 * <p>Note: Calling the method <code>relative(1)</code> 1230 * is identical to calling the method <code>next()</code> and 1231 * calling the method <code>relative(-1)</code> is identical 1232 * to calling the method <code>previous()</code>. 1233 * 1234 * @param rows an <code>int</code> specifying the number of rows to 1235 * move from the current row; a positive number moves the cursor 1236 * forward; a negative number moves the cursor backward 1237 * @return <code>true</code> if the cursor is on a row; 1238 * <code>false</code> otherwise 1239 * @exception SQLException if a database access error occurs; this method 1240 * is called on a closed result set or the result set type is 1241 * <code>TYPE_FORWARD_ONLY</code> 1242 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1243 * this method 1244 * @since 1.2 1245 */ relative( int rows )1246 boolean relative( int rows ) throws SQLException; 1247 1248 /** 1249 * Moves the cursor to the previous row in this 1250 * <code>ResultSet</code> object. 1251 *<p> 1252 * When a call to the <code>previous</code> method returns <code>false</code>, 1253 * the cursor is positioned before the first row. Any invocation of a 1254 * <code>ResultSet</code> method which requires a current row will result in a 1255 * <code>SQLException</code> being thrown. 1256 *<p> 1257 * If an input stream is open for the current row, a call to the method 1258 * <code>previous</code> will implicitly close it. A <code>ResultSet</code> 1259 * object's warning change is cleared when a new row is read. 1260 *<p> 1261 * 1262 * @return <code>true</code> if the cursor is now positioned on a valid row; 1263 * <code>false</code> if the cursor is positioned before the first row 1264 * @exception SQLException if a database access error 1265 * occurs; this method is called on a closed result set 1266 * or the result set type is <code>TYPE_FORWARD_ONLY</code> 1267 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1268 * this method 1269 * @since 1.2 1270 */ previous()1271 boolean previous() throws SQLException; 1272 1273 //--------------------------------------------------------------------- 1274 // Properties 1275 //--------------------------------------------------------------------- 1276 1277 /** 1278 * The constant indicating that the rows in a result set will be 1279 * processed in a forward direction; first-to-last. 1280 * This constant is used by the method <code>setFetchDirection</code> 1281 * as a hint to the driver, which the driver may ignore. 1282 * @since 1.2 1283 */ 1284 int FETCH_FORWARD = 1000; 1285 1286 /** 1287 * The constant indicating that the rows in a result set will be 1288 * processed in a reverse direction; last-to-first. 1289 * This constant is used by the method <code>setFetchDirection</code> 1290 * as a hint to the driver, which the driver may ignore. 1291 * @since 1.2 1292 */ 1293 int FETCH_REVERSE = 1001; 1294 1295 /** 1296 * The constant indicating that the order in which rows in a 1297 * result set will be processed is unknown. 1298 * This constant is used by the method <code>setFetchDirection</code> 1299 * as a hint to the driver, which the driver may ignore. 1300 */ 1301 int FETCH_UNKNOWN = 1002; 1302 1303 /** 1304 * Gives a hint as to the direction in which the rows in this 1305 * <code>ResultSet</code> object will be processed. 1306 * The initial value is determined by the 1307 * <code>Statement</code> object 1308 * that produced this <code>ResultSet</code> object. 1309 * The fetch direction may be changed at any time. 1310 * 1311 * @param direction an <code>int</code> specifying the suggested 1312 * fetch direction; one of <code>ResultSet.FETCH_FORWARD</code>, 1313 * <code>ResultSet.FETCH_REVERSE</code>, or 1314 * <code>ResultSet.FETCH_UNKNOWN</code> 1315 * @exception SQLException if a database access error occurs; this 1316 * method is called on a closed result set or 1317 * the result set type is <code>TYPE_FORWARD_ONLY</code> and the fetch 1318 * direction is not <code>FETCH_FORWARD</code> 1319 * @since 1.2 1320 * @see Statement#setFetchDirection 1321 * @see #getFetchDirection 1322 */ setFetchDirection(int direction)1323 void setFetchDirection(int direction) throws SQLException; 1324 1325 /** 1326 * Retrieves the fetch direction for this 1327 * <code>ResultSet</code> object. 1328 * 1329 * @return the current fetch direction for this <code>ResultSet</code> object 1330 * @exception SQLException if a database access error occurs 1331 * or this method is called on a closed result set 1332 * @since 1.2 1333 * @see #setFetchDirection 1334 */ getFetchDirection()1335 int getFetchDirection() throws SQLException; 1336 1337 /** 1338 * Gives the JDBC driver a hint as to the number of rows that should 1339 * be fetched from the database when more rows are needed for this 1340 * <code>ResultSet</code> object. 1341 * If the fetch size specified is zero, the JDBC driver 1342 * ignores the value and is free to make its own best guess as to what 1343 * the fetch size should be. The default value is set by the 1344 * <code>Statement</code> object 1345 * that created the result set. The fetch size may be changed at any time. 1346 * 1347 * @param rows the number of rows to fetch 1348 * @exception SQLException if a database access error occurs; this method 1349 * is called on a closed result set or the 1350 * condition <code>rows >= 0 </code> is not satisfied 1351 * @since 1.2 1352 * @see #getFetchSize 1353 */ setFetchSize(int rows)1354 void setFetchSize(int rows) throws SQLException; 1355 1356 /** 1357 * Retrieves the fetch size for this 1358 * <code>ResultSet</code> object. 1359 * 1360 * @return the current fetch size for this <code>ResultSet</code> object 1361 * @exception SQLException if a database access error occurs 1362 * or this method is called on a closed result set 1363 * @since 1.2 1364 * @see #setFetchSize 1365 */ getFetchSize()1366 int getFetchSize() throws SQLException; 1367 1368 /** 1369 * The constant indicating the type for a <code>ResultSet</code> object 1370 * whose cursor may move only forward. 1371 * @since 1.2 1372 */ 1373 int TYPE_FORWARD_ONLY = 1003; 1374 1375 /** 1376 * The constant indicating the type for a <code>ResultSet</code> object 1377 * that is scrollable but generally not sensitive to changes to the data 1378 * that underlies the <code>ResultSet</code>. 1379 * @since 1.2 1380 */ 1381 int TYPE_SCROLL_INSENSITIVE = 1004; 1382 1383 /** 1384 * The constant indicating the type for a <code>ResultSet</code> object 1385 * that is scrollable and generally sensitive to changes to the data 1386 * that underlies the <code>ResultSet</code>. 1387 * @since 1.2 1388 */ 1389 int TYPE_SCROLL_SENSITIVE = 1005; 1390 1391 /** 1392 * Retrieves the type of this <code>ResultSet</code> object. 1393 * The type is determined by the <code>Statement</code> object 1394 * that created the result set. 1395 * 1396 * @return <code>ResultSet.TYPE_FORWARD_ONLY</code>, 1397 * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, 1398 * or <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> 1399 * @exception SQLException if a database access error occurs 1400 * or this method is called on a closed result set 1401 * @since 1.2 1402 */ getType()1403 int getType() throws SQLException; 1404 1405 /** 1406 * The constant indicating the concurrency mode for a 1407 * <code>ResultSet</code> object that may NOT be updated. 1408 * @since 1.2 1409 */ 1410 int CONCUR_READ_ONLY = 1007; 1411 1412 /** 1413 * The constant indicating the concurrency mode for a 1414 * <code>ResultSet</code> object that may be updated. 1415 * @since 1.2 1416 */ 1417 int CONCUR_UPDATABLE = 1008; 1418 1419 /** 1420 * Retrieves the concurrency mode of this <code>ResultSet</code> object. 1421 * The concurrency used is determined by the 1422 * <code>Statement</code> object that created the result set. 1423 * 1424 * @return the concurrency type, either 1425 * <code>ResultSet.CONCUR_READ_ONLY</code> 1426 * or <code>ResultSet.CONCUR_UPDATABLE</code> 1427 * @exception SQLException if a database access error occurs 1428 * or this method is called on a closed result set 1429 * @since 1.2 1430 */ getConcurrency()1431 int getConcurrency() throws SQLException; 1432 1433 //--------------------------------------------------------------------- 1434 // Updates 1435 //--------------------------------------------------------------------- 1436 1437 /** 1438 * Retrieves whether the current row has been updated. The value returned 1439 * depends on whether or not the result set can detect updates. 1440 * <p> 1441 * <strong>Note:</strong> Support for the <code>rowUpdated</code> method is optional with a result set 1442 * concurrency of <code>CONCUR_READ_ONLY</code> 1443 * @return <code>true</code> if the current row is detected to 1444 * have been visibly updated by the owner or another; <code>false</code> otherwise 1445 * @exception SQLException if a database access error occurs 1446 * or this method is called on a closed result set 1447 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1448 * this method 1449 * @see DatabaseMetaData#updatesAreDetected 1450 * @since 1.2 1451 */ rowUpdated()1452 boolean rowUpdated() throws SQLException; 1453 1454 /** 1455 * Retrieves whether the current row has had an insertion. 1456 * The value returned depends on whether or not this 1457 * <code>ResultSet</code> object can detect visible inserts. 1458 * <p> 1459 * <strong>Note:</strong> Support for the <code>rowInserted</code> method is optional with a result set 1460 * concurrency of <code>CONCUR_READ_ONLY</code> 1461 * @return <code>true</code> if the current row is detected to 1462 * have been inserted; <code>false</code> otherwise 1463 * @exception SQLException if a database access error occurs 1464 * or this method is called on a closed result set 1465 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1466 * this method 1467 * 1468 * @see DatabaseMetaData#insertsAreDetected 1469 * @since 1.2 1470 */ rowInserted()1471 boolean rowInserted() throws SQLException; 1472 1473 /** 1474 * Retrieves whether a row has been deleted. A deleted row may leave 1475 * a visible "hole" in a result set. This method can be used to 1476 * detect holes in a result set. The value returned depends on whether 1477 * or not this <code>ResultSet</code> object can detect deletions. 1478 * <p> 1479 * <strong>Note:</strong> Support for the <code>rowDeleted</code> method is optional with a result set 1480 * concurrency of <code>CONCUR_READ_ONLY</code> 1481 * @return <code>true</code> if the current row is detected to 1482 * have been deleted by the owner or another; <code>false</code> otherwise 1483 * @exception SQLException if a database access error occurs 1484 * or this method is called on a closed result set 1485 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1486 * this method 1487 * 1488 * @see DatabaseMetaData#deletesAreDetected 1489 * @since 1.2 1490 */ rowDeleted()1491 boolean rowDeleted() throws SQLException; 1492 1493 /** 1494 * Updates the designated column with a <code>null</code> value. 1495 * 1496 * The updater methods are used to update column values in the 1497 * current row or the insert row. The updater methods do not 1498 * update the underlying database; instead the <code>updateRow</code> 1499 * or <code>insertRow</code> methods are called to update the database. 1500 * 1501 * @param columnIndex the first column is 1, the second is 2, ... 1502 * @exception SQLException if the columnIndex is not valid; 1503 * if a database access error occurs; 1504 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1505 * or this method is called on a closed result set 1506 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1507 * this method 1508 * @since 1.2 1509 */ updateNull(int columnIndex)1510 void updateNull(int columnIndex) throws SQLException; 1511 1512 /** 1513 * Updates the designated column with a <code>boolean</code> value. 1514 * The updater methods are used to update column values in the 1515 * current row or the insert row. The updater methods do not 1516 * update the underlying database; instead the <code>updateRow</code> or 1517 * <code>insertRow</code> methods are called to update the database. 1518 * 1519 * @param columnIndex the first column is 1, the second is 2, ... 1520 * @param x the new column value 1521 * @exception SQLException if the columnIndex is not valid; 1522 * if a database access error occurs; 1523 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1524 * or this method is called on a closed result set 1525 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1526 * this method 1527 * @since 1.2 1528 */ updateBoolean(int columnIndex, boolean x)1529 void updateBoolean(int columnIndex, boolean x) throws SQLException; 1530 1531 /** 1532 * Updates the designated column with a <code>byte</code> value. 1533 * The updater methods are used to update column values in the 1534 * current row or the insert row. The updater methods do not 1535 * update the underlying database; instead the <code>updateRow</code> or 1536 * <code>insertRow</code> methods are called to update the database. 1537 * 1538 * 1539 * @param columnIndex the first column is 1, the second is 2, ... 1540 * @param x the new column value 1541 * @exception SQLException if the columnIndex is not valid; 1542 * if a database access error occurs; 1543 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1544 * or this method is called on a closed result set 1545 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1546 * this method 1547 * @since 1.2 1548 */ updateByte(int columnIndex, byte x)1549 void updateByte(int columnIndex, byte x) throws SQLException; 1550 1551 /** 1552 * Updates the designated column with a <code>short</code> value. 1553 * The updater methods are used to update column values in the 1554 * current row or the insert row. The updater methods do not 1555 * update the underlying database; instead the <code>updateRow</code> or 1556 * <code>insertRow</code> methods are called to update the database. 1557 * 1558 * @param columnIndex the first column is 1, the second is 2, ... 1559 * @param x the new column value 1560 * @exception SQLException if the columnIndex is not valid; 1561 * if a database access error occurs; 1562 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1563 * or this method is called on a closed result set 1564 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1565 * this method 1566 * @since 1.2 1567 */ updateShort(int columnIndex, short x)1568 void updateShort(int columnIndex, short x) throws SQLException; 1569 1570 /** 1571 * Updates the designated column with an <code>int</code> value. 1572 * The updater methods are used to update column values in the 1573 * current row or the insert row. The updater methods do not 1574 * update the underlying database; instead the <code>updateRow</code> or 1575 * <code>insertRow</code> methods are called to update the database. 1576 * 1577 * @param columnIndex the first column is 1, the second is 2, ... 1578 * @param x the new column value 1579 * @exception SQLException if the columnIndex is not valid; 1580 * if a database access error occurs; 1581 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1582 * or this method is called on a closed result set 1583 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1584 * this method 1585 * @since 1.2 1586 */ updateInt(int columnIndex, int x)1587 void updateInt(int columnIndex, int x) throws SQLException; 1588 1589 /** 1590 * Updates the designated column with a <code>long</code> value. 1591 * The updater methods are used to update column values in the 1592 * current row or the insert row. The updater methods do not 1593 * update the underlying database; instead the <code>updateRow</code> or 1594 * <code>insertRow</code> methods are called to update the database. 1595 * 1596 * @param columnIndex the first column is 1, the second is 2, ... 1597 * @param x the new column value 1598 * @exception SQLException if the columnIndex is not valid; 1599 * if a database access error occurs; 1600 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1601 * or this method is called on a closed result set 1602 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1603 * this method 1604 * @since 1.2 1605 */ updateLong(int columnIndex, long x)1606 void updateLong(int columnIndex, long x) throws SQLException; 1607 1608 /** 1609 * Updates the designated column with a <code>float</code> value. 1610 * The updater methods are used to update column values in the 1611 * current row or the insert row. The updater methods do not 1612 * update the underlying database; instead the <code>updateRow</code> or 1613 * <code>insertRow</code> methods are called to update the database. 1614 * 1615 * @param columnIndex the first column is 1, the second is 2, ... 1616 * @param x the new column value 1617 * @exception SQLException if the columnIndex is not valid; 1618 * if a database access error occurs; 1619 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1620 * or this method is called on a closed result set 1621 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1622 * this method 1623 * @since 1.2 1624 */ updateFloat(int columnIndex, float x)1625 void updateFloat(int columnIndex, float x) throws SQLException; 1626 1627 /** 1628 * Updates the designated column with a <code>double</code> value. 1629 * The updater methods are used to update column values in the 1630 * current row or the insert row. The updater methods do not 1631 * update the underlying database; instead the <code>updateRow</code> or 1632 * <code>insertRow</code> methods are called to update the database. 1633 * 1634 * @param columnIndex the first column is 1, the second is 2, ... 1635 * @param x the new column value 1636 * @exception SQLException if the columnIndex is not valid; 1637 * if a database access error occurs; 1638 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1639 * or this method is called on a closed result set 1640 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1641 * this method 1642 * @since 1.2 1643 */ updateDouble(int columnIndex, double x)1644 void updateDouble(int columnIndex, double x) throws SQLException; 1645 1646 /** 1647 * Updates the designated column with a <code>java.math.BigDecimal</code> 1648 * value. 1649 * The updater methods are used to update column values in the 1650 * current row or the insert row. The updater methods do not 1651 * update the underlying database; instead the <code>updateRow</code> or 1652 * <code>insertRow</code> methods are called to update the database. 1653 * 1654 * @param columnIndex the first column is 1, the second is 2, ... 1655 * @param x the new column value 1656 * @exception SQLException if the columnIndex is not valid; 1657 * if a database access error occurs; 1658 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1659 * or this method is called on a closed result set 1660 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1661 * this method 1662 * @since 1.2 1663 */ updateBigDecimal(int columnIndex, BigDecimal x)1664 void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException; 1665 1666 /** 1667 * Updates the designated column with a <code>String</code> value. 1668 * The updater methods are used to update column values in the 1669 * current row or the insert row. The updater methods do not 1670 * update the underlying database; instead the <code>updateRow</code> or 1671 * <code>insertRow</code> methods are called to update the database. 1672 * 1673 * @param columnIndex the first column is 1, the second is 2, ... 1674 * @param x the new column value 1675 * @exception SQLException if the columnIndex is not valid; 1676 * if a database access error occurs; 1677 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1678 * or this method is called on a closed result set 1679 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1680 * this method 1681 * @since 1.2 1682 */ updateString(int columnIndex, String x)1683 void updateString(int columnIndex, String x) throws SQLException; 1684 1685 /** 1686 * Updates the designated column with a <code>byte</code> array value. 1687 * The updater methods are used to update column values in the 1688 * current row or the insert row. The updater methods do not 1689 * update the underlying database; instead the <code>updateRow</code> or 1690 * <code>insertRow</code> methods are called to update the database. 1691 * 1692 * @param columnIndex the first column is 1, the second is 2, ... 1693 * @param x the new column value 1694 * @exception SQLException if the columnIndex is not valid; 1695 * if a database access error occurs; 1696 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1697 * or this method is called on a closed result set 1698 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1699 * this method 1700 * @since 1.2 1701 */ updateBytes(int columnIndex, byte x[])1702 void updateBytes(int columnIndex, byte x[]) throws SQLException; 1703 1704 /** 1705 * Updates the designated column with a <code>java.sql.Date</code> value. 1706 * The updater methods are used to update column values in the 1707 * current row or the insert row. The updater methods do not 1708 * update the underlying database; instead the <code>updateRow</code> or 1709 * <code>insertRow</code> methods are called to update the database. 1710 * 1711 * @param columnIndex the first column is 1, the second is 2, ... 1712 * @param x the new column value 1713 * @exception SQLException if the columnIndex is not valid; 1714 * if a database access error occurs; 1715 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1716 * or this method is called on a closed result set 1717 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1718 * this method 1719 * @since 1.2 1720 */ updateDate(int columnIndex, java.sql.Date x)1721 void updateDate(int columnIndex, java.sql.Date x) throws SQLException; 1722 1723 /** 1724 * Updates the designated column with a <code>java.sql.Time</code> value. 1725 * The updater methods are used to update column values in the 1726 * current row or the insert row. The updater methods do not 1727 * update the underlying database; instead the <code>updateRow</code> or 1728 * <code>insertRow</code> methods are called to update the database. 1729 * 1730 * @param columnIndex the first column is 1, the second is 2, ... 1731 * @param x the new column value 1732 * @exception SQLException if the columnIndex is not valid; 1733 * if a database access error occurs; 1734 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1735 * or this method is called on a closed result set 1736 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1737 * this method 1738 * @since 1.2 1739 */ updateTime(int columnIndex, java.sql.Time x)1740 void updateTime(int columnIndex, java.sql.Time x) throws SQLException; 1741 1742 /** 1743 * Updates the designated column with a <code>java.sql.Timestamp</code> 1744 * value. 1745 * The updater methods are used to update column values in the 1746 * current row or the insert row. The updater methods do not 1747 * update the underlying database; instead the <code>updateRow</code> or 1748 * <code>insertRow</code> methods are called to update the database. 1749 * 1750 * @param columnIndex the first column is 1, the second is 2, ... 1751 * @param x the new column value 1752 * @exception SQLException if the columnIndex is not valid; 1753 * if a database access error occurs; 1754 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1755 * or this method is called on a closed result set 1756 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1757 * this method 1758 * @since 1.2 1759 */ updateTimestamp(int columnIndex, java.sql.Timestamp x)1760 void updateTimestamp(int columnIndex, java.sql.Timestamp x) 1761 throws SQLException; 1762 1763 /** 1764 * Updates the designated column with an ascii stream value, which will have 1765 * the specified number of bytes. 1766 * The updater methods are used to update column values in the 1767 * current row or the insert row. The updater methods do not 1768 * update the underlying database; instead the <code>updateRow</code> or 1769 * <code>insertRow</code> methods are called to update the database. 1770 * 1771 * @param columnIndex the first column is 1, the second is 2, ... 1772 * @param x the new column value 1773 * @param length the length of the stream 1774 * @exception SQLException if the columnIndex is not valid; 1775 * if a database access error occurs; 1776 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1777 * or this method is called on a closed result set 1778 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1779 * this method 1780 * @since 1.2 1781 */ updateAsciiStream(int columnIndex, java.io.InputStream x, int length)1782 void updateAsciiStream(int columnIndex, 1783 java.io.InputStream x, 1784 int length) throws SQLException; 1785 1786 /** 1787 * Updates the designated column with a binary stream value, which will have 1788 * the specified number of bytes. 1789 * The updater methods are used to update column values in the 1790 * current row or the insert row. The updater methods do not 1791 * update the underlying database; instead the <code>updateRow</code> or 1792 * <code>insertRow</code> methods are called to update the database. 1793 * 1794 * @param columnIndex the first column is 1, the second is 2, ... 1795 * @param x the new column value 1796 * @param length the length of the stream 1797 * @exception SQLException if the columnIndex is not valid; 1798 * if a database access error occurs; 1799 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1800 * or this method is called on a closed result set 1801 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1802 * this method 1803 * @since 1.2 1804 */ updateBinaryStream(int columnIndex, java.io.InputStream x, int length)1805 void updateBinaryStream(int columnIndex, 1806 java.io.InputStream x, 1807 int length) throws SQLException; 1808 1809 /** 1810 * Updates the designated column with a character stream value, which will have 1811 * the specified number of bytes. 1812 * The updater methods are used to update column values in the 1813 * current row or the insert row. The updater methods do not 1814 * update the underlying database; instead the <code>updateRow</code> or 1815 * <code>insertRow</code> methods are called to update the database. 1816 * 1817 * @param columnIndex the first column is 1, the second is 2, ... 1818 * @param x the new column value 1819 * @param length the length of the stream 1820 * @exception SQLException if the columnIndex is not valid; 1821 * if a database access error occurs; 1822 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1823 * or this method is called on a closed result set 1824 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1825 * this method 1826 * @since 1.2 1827 */ updateCharacterStream(int columnIndex, java.io.Reader x, int length)1828 void updateCharacterStream(int columnIndex, 1829 java.io.Reader x, 1830 int length) throws SQLException; 1831 1832 /** 1833 * Updates the designated column with an <code>Object</code> value. 1834 * The updater methods are used to update column values in the 1835 * current row or the insert row. The updater methods do not 1836 * update the underlying database; instead the <code>updateRow</code> or 1837 * <code>insertRow</code> methods are called to update the database. 1838 *<p> 1839 * If the second argument is an <code>InputStream</code> then the stream must contain 1840 * the number of bytes specified by scaleOrLength. If the second argument is a 1841 * <code>Reader</code> then the reader must contain the number of characters specified 1842 * by scaleOrLength. If these conditions are not true the driver will generate a 1843 * <code>SQLException</code> when the statement is executed. 1844 * 1845 * @param columnIndex the first column is 1, the second is 2, ... 1846 * @param x the new column value 1847 * @param scaleOrLength for an object of <code>java.math.BigDecimal</code> , 1848 * this is the number of digits after the decimal point. For 1849 * Java Object types <code>InputStream</code> and <code>Reader</code>, 1850 * this is the length 1851 * of the data in the stream or reader. For all other types, 1852 * this value will be ignored. 1853 * @exception SQLException if the columnIndex is not valid; 1854 * if a database access error occurs; 1855 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1856 * or this method is called on a closed result set 1857 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1858 * this method 1859 * @since 1.2 1860 */ updateObject(int columnIndex, Object x, int scaleOrLength)1861 void updateObject(int columnIndex, Object x, int scaleOrLength) 1862 throws SQLException; 1863 1864 /** 1865 * Updates the designated column with an <code>Object</code> value. 1866 * The updater methods are used to update column values in the 1867 * current row or the insert row. The updater methods do not 1868 * update the underlying database; instead the <code>updateRow</code> or 1869 * <code>insertRow</code> methods are called to update the database. 1870 * 1871 * @param columnIndex the first column is 1, the second is 2, ... 1872 * @param x the new column value 1873 * @exception SQLException if the columnIndex is not valid; 1874 * if a database access error occurs; 1875 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1876 * or this method is called on a closed result set 1877 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1878 * this method 1879 * @since 1.2 1880 */ updateObject(int columnIndex, Object x)1881 void updateObject(int columnIndex, Object x) throws SQLException; 1882 1883 /** 1884 * Updates the designated column with a <code>null</code> value. 1885 * The updater methods are used to update column values in the 1886 * current row or the insert row. The updater methods do not 1887 * update the underlying database; instead the <code>updateRow</code> or 1888 * <code>insertRow</code> methods are called to update the database. 1889 * 1890 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1891 * @exception SQLException if the columnLabel is not valid; 1892 * if a database access error occurs; 1893 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1894 * or this method is called on a closed result set 1895 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1896 * this method 1897 * @since 1.2 1898 */ updateNull(String columnLabel)1899 void updateNull(String columnLabel) throws SQLException; 1900 1901 /** 1902 * Updates the designated column with a <code>boolean</code> value. 1903 * The updater methods are used to update column values in the 1904 * current row or the insert row. The updater methods do not 1905 * update the underlying database; instead the <code>updateRow</code> or 1906 * <code>insertRow</code> methods are called to update the database. 1907 * 1908 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1909 * @param x the new column value 1910 * @exception SQLException if the columnLabel is not valid; 1911 * if a database access error occurs; 1912 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1913 * or this method is called on a closed result set 1914 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1915 * this method 1916 * @since 1.2 1917 */ updateBoolean(String columnLabel, boolean x)1918 void updateBoolean(String columnLabel, boolean x) throws SQLException; 1919 1920 /** 1921 * Updates the designated column with a <code>byte</code> value. 1922 * The updater methods are used to update column values in the 1923 * current row or the insert row. The updater methods do not 1924 * update the underlying database; instead the <code>updateRow</code> or 1925 * <code>insertRow</code> methods are called to update the database. 1926 * 1927 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1928 * @param x the new column value 1929 * @exception SQLException if the columnLabel is not valid; 1930 * if a database access error occurs; 1931 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1932 * or this method is called on a closed result set 1933 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1934 * this method 1935 * @since 1.2 1936 */ updateByte(String columnLabel, byte x)1937 void updateByte(String columnLabel, byte x) throws SQLException; 1938 1939 /** 1940 * Updates the designated column with a <code>short</code> value. 1941 * The updater methods are used to update column values in the 1942 * current row or the insert row. The updater methods do not 1943 * update the underlying database; instead the <code>updateRow</code> or 1944 * <code>insertRow</code> methods are called to update the database. 1945 * 1946 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1947 * @param x the new column value 1948 * @exception SQLException if the columnLabel is not valid; 1949 * if a database access error occurs; 1950 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1951 * or this method is called on a closed result set 1952 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1953 * this method 1954 * @since 1.2 1955 */ updateShort(String columnLabel, short x)1956 void updateShort(String columnLabel, short x) throws SQLException; 1957 1958 /** 1959 * Updates the designated column with an <code>int</code> value. 1960 * The updater methods are used to update column values in the 1961 * current row or the insert row. The updater methods do not 1962 * update the underlying database; instead the <code>updateRow</code> or 1963 * <code>insertRow</code> methods are called to update the database. 1964 * 1965 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1966 * @param x the new column value 1967 * @exception SQLException if the columnLabel is not valid; 1968 * if a database access error occurs; 1969 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1970 * or this method is called on a closed result set 1971 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1972 * this method 1973 * @since 1.2 1974 */ updateInt(String columnLabel, int x)1975 void updateInt(String columnLabel, int x) throws SQLException; 1976 1977 /** 1978 * Updates the designated column with a <code>long</code> value. 1979 * The updater methods are used to update column values in the 1980 * current row or the insert row. The updater methods do not 1981 * update the underlying database; instead the <code>updateRow</code> or 1982 * <code>insertRow</code> methods are called to update the database. 1983 * 1984 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 1985 * @param x the new column value 1986 * @exception SQLException if the columnLabel is not valid; 1987 * if a database access error occurs; 1988 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 1989 * or this method is called on a closed result set 1990 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 1991 * this method 1992 * @since 1.2 1993 */ updateLong(String columnLabel, long x)1994 void updateLong(String columnLabel, long x) throws SQLException; 1995 1996 /** 1997 * Updates the designated column with a <code>float </code> value. 1998 * The updater methods are used to update column values in the 1999 * current row or the insert row. The updater methods do not 2000 * update the underlying database; instead the <code>updateRow</code> or 2001 * <code>insertRow</code> methods are called to update the database. 2002 * 2003 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2004 * @param x the new column value 2005 * @exception SQLException if the columnLabel is not valid; 2006 * if a database access error occurs; 2007 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2008 * or this method is called on a closed result set 2009 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2010 * this method 2011 * @since 1.2 2012 */ updateFloat(String columnLabel, float x)2013 void updateFloat(String columnLabel, float x) throws SQLException; 2014 2015 /** 2016 * Updates the designated column with a <code>double</code> value. 2017 * The updater methods are used to update column values in the 2018 * current row or the insert row. The updater methods do not 2019 * update the underlying database; instead the <code>updateRow</code> or 2020 * <code>insertRow</code> methods are called to update the database. 2021 * 2022 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2023 * @param x the new column value 2024 * @exception SQLException if the columnLabel is not valid; 2025 * if a database access error occurs; 2026 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2027 * or this method is called on a closed result set 2028 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2029 * this method 2030 * @since 1.2 2031 */ updateDouble(String columnLabel, double x)2032 void updateDouble(String columnLabel, double x) throws SQLException; 2033 2034 /** 2035 * Updates the designated column with a <code>java.sql.BigDecimal</code> 2036 * value. 2037 * The updater methods are used to update column values in the 2038 * current row or the insert row. The updater methods do not 2039 * update the underlying database; instead the <code>updateRow</code> or 2040 * <code>insertRow</code> methods are called to update the database. 2041 * 2042 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2043 * @param x the new column value 2044 * @exception SQLException if the columnLabel is not valid; 2045 * if a database access error occurs; 2046 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2047 * or this method is called on a closed result set 2048 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2049 * this method 2050 * @since 1.2 2051 */ updateBigDecimal(String columnLabel, BigDecimal x)2052 void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException; 2053 2054 /** 2055 * Updates the designated column with a <code>String</code> value. 2056 * The updater methods are used to update column values in the 2057 * current row or the insert row. The updater methods do not 2058 * update the underlying database; instead the <code>updateRow</code> or 2059 * <code>insertRow</code> methods are called to update the database. 2060 * 2061 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2062 * @param x the new column value 2063 * @exception SQLException if the columnLabel is not valid; 2064 * if a database access error occurs; 2065 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2066 * or this method is called on a closed result set 2067 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2068 * this method 2069 * @since 1.2 2070 */ updateString(String columnLabel, String x)2071 void updateString(String columnLabel, String x) throws SQLException; 2072 2073 /** 2074 * Updates the designated column with a byte array value. 2075 * 2076 * The updater methods are used to update column values in the 2077 * current row or the insert row. The updater methods do not 2078 * update the underlying database; instead the <code>updateRow</code> 2079 * or <code>insertRow</code> methods are called to update the database. 2080 * 2081 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2082 * @param x the new column value 2083 * @exception SQLException if the columnLabel is not valid; 2084 * if a database access error occurs; 2085 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2086 * or this method is called on a closed result set 2087 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2088 * this method 2089 * @since 1.2 2090 */ updateBytes(String columnLabel, byte x[])2091 void updateBytes(String columnLabel, byte x[]) throws SQLException; 2092 2093 /** 2094 * Updates the designated column with a <code>java.sql.Date</code> value. 2095 * The updater methods are used to update column values in the 2096 * current row or the insert row. The updater methods do not 2097 * update the underlying database; instead the <code>updateRow</code> or 2098 * <code>insertRow</code> methods are called to update the database. 2099 * 2100 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2101 * @param x the new column value 2102 * @exception SQLException if the columnLabel is not valid; 2103 * if a database access error occurs; 2104 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2105 * or this method is called on a closed result set 2106 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2107 * this method 2108 * @since 1.2 2109 */ updateDate(String columnLabel, java.sql.Date x)2110 void updateDate(String columnLabel, java.sql.Date x) throws SQLException; 2111 2112 /** 2113 * Updates the designated column with a <code>java.sql.Time</code> value. 2114 * The updater methods are used to update column values in the 2115 * current row or the insert row. The updater methods do not 2116 * update the underlying database; instead the <code>updateRow</code> or 2117 * <code>insertRow</code> methods are called to update the database. 2118 * 2119 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2120 * @param x the new column value 2121 * @exception SQLException if the columnLabel is not valid; 2122 * if a database access error occurs; 2123 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2124 * or this method is called on a closed result set 2125 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2126 * this method 2127 * @since 1.2 2128 */ updateTime(String columnLabel, java.sql.Time x)2129 void updateTime(String columnLabel, java.sql.Time x) throws SQLException; 2130 2131 /** 2132 * Updates the designated column with a <code>java.sql.Timestamp</code> 2133 * value. 2134 * The updater methods are used to update column values in the 2135 * current row or the insert row. The updater methods do not 2136 * update the underlying database; instead the <code>updateRow</code> or 2137 * <code>insertRow</code> methods are called to update the database. 2138 * 2139 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2140 * @param x the new column value 2141 * @exception SQLException if the columnLabel is not valid; 2142 * if a database access error occurs; 2143 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2144 * or this method is called on a closed result set 2145 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2146 * this method 2147 * @since 1.2 2148 */ updateTimestamp(String columnLabel, java.sql.Timestamp x)2149 void updateTimestamp(String columnLabel, java.sql.Timestamp x) 2150 throws SQLException; 2151 2152 /** 2153 * Updates the designated column with an ascii stream value, which will have 2154 * the specified number of bytes. 2155 * The updater methods are used to update column values in the 2156 * current row or the insert row. The updater methods do not 2157 * update the underlying database; instead the <code>updateRow</code> or 2158 * <code>insertRow</code> methods are called to update the database. 2159 * 2160 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2161 * @param x the new column value 2162 * @param length the length of the stream 2163 * @exception SQLException if the columnLabel is not valid; 2164 * if a database access error occurs; 2165 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2166 * or this method is called on a closed result set 2167 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2168 * this method 2169 * @since 1.2 2170 */ updateAsciiStream(String columnLabel, java.io.InputStream x, int length)2171 void updateAsciiStream(String columnLabel, 2172 java.io.InputStream x, 2173 int length) throws SQLException; 2174 2175 /** 2176 * Updates the designated column with a binary stream value, which will have 2177 * the specified number of bytes. 2178 * The updater methods are used to update column values in the 2179 * current row or the insert row. The updater methods do not 2180 * update the underlying database; instead the <code>updateRow</code> or 2181 * <code>insertRow</code> methods are called to update the database. 2182 * 2183 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2184 * @param x the new column value 2185 * @param length the length of the stream 2186 * @exception SQLException if the columnLabel is not valid; 2187 * if a database access error occurs; 2188 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2189 * or this method is called on a closed result set 2190 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2191 * this method 2192 * @since 1.2 2193 */ updateBinaryStream(String columnLabel, java.io.InputStream x, int length)2194 void updateBinaryStream(String columnLabel, 2195 java.io.InputStream x, 2196 int length) throws SQLException; 2197 2198 /** 2199 * Updates the designated column with a character stream value, which will have 2200 * the specified number of bytes. 2201 * The updater methods are used to update column values in the 2202 * current row or the insert row. The updater methods do not 2203 * update the underlying database; instead the <code>updateRow</code> or 2204 * <code>insertRow</code> methods are called to update the database. 2205 * 2206 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2207 * @param reader the <code>java.io.Reader</code> object containing 2208 * the new column value 2209 * @param length the length of the stream 2210 * @exception SQLException if the columnLabel is not valid; 2211 * if a database access error occurs; 2212 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2213 * or this method is called on a closed result set 2214 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2215 * this method 2216 * @since 1.2 2217 */ updateCharacterStream(String columnLabel, java.io.Reader reader, int length)2218 void updateCharacterStream(String columnLabel, 2219 java.io.Reader reader, 2220 int length) throws SQLException; 2221 2222 /** 2223 * Updates the designated column with an <code>Object</code> value. 2224 * The updater methods are used to update column values in the 2225 * current row or the insert row. The updater methods do not 2226 * update the underlying database; instead the <code>updateRow</code> or 2227 * <code>insertRow</code> methods are called to update the database. 2228 *<p> 2229 * If the second argument is an <code>InputStream</code> then the stream must contain 2230 * the number of bytes specified by scaleOrLength. If the second argument is a 2231 * <code>Reader</code> then the reader must contain the number of characters specified 2232 * by scaleOrLength. If these conditions are not true the driver will generate a 2233 * <code>SQLException</code> when the statement is executed. 2234 * 2235 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2236 * @param x the new column value 2237 * @param scaleOrLength for an object of <code>java.math.BigDecimal</code> , 2238 * this is the number of digits after the decimal point. For 2239 * Java Object types <code>InputStream</code> and <code>Reader</code>, 2240 * this is the length 2241 * of the data in the stream or reader. For all other types, 2242 * this value will be ignored. 2243 * @exception SQLException if the columnLabel is not valid; 2244 * if a database access error occurs; 2245 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2246 * or this method is called on a closed result set 2247 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2248 * this method 2249 * @since 1.2 2250 */ updateObject(String columnLabel, Object x, int scaleOrLength)2251 void updateObject(String columnLabel, Object x, int scaleOrLength) 2252 throws SQLException; 2253 2254 /** 2255 * Updates the designated column with an <code>Object</code> value. 2256 * The updater methods are used to update column values in the 2257 * current row or the insert row. The updater methods do not 2258 * update the underlying database; instead the <code>updateRow</code> or 2259 * <code>insertRow</code> methods are called to update the database. 2260 * 2261 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2262 * @param x the new column value 2263 * @exception SQLException if the columnLabel is not valid; 2264 * if a database access error occurs; 2265 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2266 * or this method is called on a closed result set 2267 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2268 * this method 2269 * @since 1.2 2270 */ updateObject(String columnLabel, Object x)2271 void updateObject(String columnLabel, Object x) throws SQLException; 2272 2273 /** 2274 * Inserts the contents of the insert row into this 2275 * <code>ResultSet</code> object and into the database. 2276 * The cursor must be on the insert row when this method is called. 2277 * 2278 * @exception SQLException if a database access error occurs; 2279 * the result set concurrency is <code>CONCUR_READ_ONLY</code>, 2280 * this method is called on a closed result set, 2281 * if this method is called when the cursor is not on the insert row, 2282 * or if not all of non-nullable columns in 2283 * the insert row have been given a non-null value 2284 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2285 * this method 2286 * @since 1.2 2287 */ insertRow()2288 void insertRow() throws SQLException; 2289 2290 /** 2291 * Updates the underlying database with the new contents of the 2292 * current row of this <code>ResultSet</code> object. 2293 * This method cannot be called when the cursor is on the insert row. 2294 * 2295 * @exception SQLException if a database access error occurs; 2296 * the result set concurrency is <code>CONCUR_READ_ONLY</code>; 2297 * this method is called on a closed result set or 2298 * if this method is called when the cursor is on the insert row 2299 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2300 * this method 2301 * @since 1.2 2302 */ updateRow()2303 void updateRow() throws SQLException; 2304 2305 /** 2306 * Deletes the current row from this <code>ResultSet</code> object 2307 * and from the underlying database. This method cannot be called when 2308 * the cursor is on the insert row. 2309 * 2310 * @exception SQLException if a database access error occurs; 2311 * the result set concurrency is <code>CONCUR_READ_ONLY</code>; 2312 * this method is called on a closed result set 2313 * or if this method is called when the cursor is on the insert row 2314 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2315 * this method 2316 * @since 1.2 2317 */ deleteRow()2318 void deleteRow() throws SQLException; 2319 2320 /** 2321 * Refreshes the current row with its most recent value in 2322 * the database. This method cannot be called when 2323 * the cursor is on the insert row. 2324 * 2325 * <P>The <code>refreshRow</code> method provides a way for an 2326 * application to 2327 * explicitly tell the JDBC driver to refetch a row(s) from the 2328 * database. An application may want to call <code>refreshRow</code> when 2329 * caching or prefetching is being done by the JDBC driver to 2330 * fetch the latest value of a row from the database. The JDBC driver 2331 * may actually refresh multiple rows at once if the fetch size is 2332 * greater than one. 2333 * 2334 * <P> All values are refetched subject to the transaction isolation 2335 * level and cursor sensitivity. If <code>refreshRow</code> is called after 2336 * calling an updater method, but before calling 2337 * the method <code>updateRow</code>, then the 2338 * updates made to the row are lost. Calling the method 2339 * <code>refreshRow</code> frequently will likely slow performance. 2340 * 2341 * @exception SQLException if a database access error 2342 * occurs; this method is called on a closed result set; 2343 * the result set type is <code>TYPE_FORWARD_ONLY</code> or if this 2344 * method is called when the cursor is on the insert row 2345 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2346 * this method or this method is not supported for the specified result 2347 * set type and result set concurrency. 2348 * @since 1.2 2349 */ refreshRow()2350 void refreshRow() throws SQLException; 2351 2352 /** 2353 * Cancels the updates made to the current row in this 2354 * <code>ResultSet</code> object. 2355 * This method may be called after calling an 2356 * updater method(s) and before calling 2357 * the method <code>updateRow</code> to roll back 2358 * the updates made to a row. If no updates have been made or 2359 * <code>updateRow</code> has already been called, this method has no 2360 * effect. 2361 * 2362 * @exception SQLException if a database access error 2363 * occurs; this method is called on a closed result set; 2364 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2365 * or if this method is called when the cursor is 2366 * on the insert row 2367 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2368 * this method 2369 * @since 1.2 2370 */ cancelRowUpdates()2371 void cancelRowUpdates() throws SQLException; 2372 2373 /** 2374 * Moves the cursor to the insert row. The current cursor position is 2375 * remembered while the cursor is positioned on the insert row. 2376 * 2377 * The insert row is a special row associated with an updatable 2378 * result set. It is essentially a buffer where a new row may 2379 * be constructed by calling the updater methods prior to 2380 * inserting the row into the result set. 2381 * 2382 * Only the updater, getter, 2383 * and <code>insertRow</code> methods may be 2384 * called when the cursor is on the insert row. All of the columns in 2385 * a result set must be given a value each time this method is 2386 * called before calling <code>insertRow</code>. 2387 * An updater method must be called before a 2388 * getter method can be called on a column value. 2389 * 2390 * @exception SQLException if a database access error occurs; this 2391 * method is called on a closed result set 2392 * or the result set concurrency is <code>CONCUR_READ_ONLY</code> 2393 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2394 * this method 2395 * @since 1.2 2396 */ moveToInsertRow()2397 void moveToInsertRow() throws SQLException; 2398 2399 /** 2400 * Moves the cursor to the remembered cursor position, usually the 2401 * current row. This method has no effect if the cursor is not on 2402 * the insert row. 2403 * 2404 * @exception SQLException if a database access error occurs; this 2405 * method is called on a closed result set 2406 * or the result set concurrency is <code>CONCUR_READ_ONLY</code> 2407 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2408 * this method 2409 * @since 1.2 2410 */ moveToCurrentRow()2411 void moveToCurrentRow() throws SQLException; 2412 2413 /** 2414 * Retrieves the <code>Statement</code> object that produced this 2415 * <code>ResultSet</code> object. 2416 * If the result set was generated some other way, such as by a 2417 * <code>DatabaseMetaData</code> method, this method may return 2418 * <code>null</code>. 2419 * 2420 * @return the <code>Statment</code> object that produced 2421 * this <code>ResultSet</code> object or <code>null</code> 2422 * if the result set was produced some other way 2423 * @exception SQLException if a database access error occurs 2424 * or this method is called on a closed result set 2425 * @since 1.2 2426 */ getStatement()2427 Statement getStatement() throws SQLException; 2428 2429 /** 2430 * Retrieves the value of the designated column in the current row 2431 * of this <code>ResultSet</code> object as an <code>Object</code> 2432 * in the Java programming language. 2433 * If the value is an SQL <code>NULL</code>, 2434 * the driver returns a Java <code>null</code>. 2435 * This method uses the given <code>Map</code> object 2436 * for the custom mapping of the 2437 * SQL structured or distinct type that is being retrieved. 2438 * 2439 * @param columnIndex the first column is 1, the second is 2, ... 2440 * @param map a <code>java.util.Map</code> object that contains the mapping 2441 * from SQL type names to classes in the Java programming language 2442 * @return an <code>Object</code> in the Java programming language 2443 * representing the SQL value 2444 * @exception SQLException if the columnIndex is not valid; 2445 * if a database access error occurs 2446 * or this method is called on a closed result set 2447 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2448 * this method 2449 * @since 1.2 2450 */ getObject(int columnIndex, java.util.Map<String,Class<?>> map)2451 Object getObject(int columnIndex, java.util.Map<String,Class<?>> map) 2452 throws SQLException; 2453 2454 /** 2455 * Retrieves the value of the designated column in the current row 2456 * of this <code>ResultSet</code> object as a <code>Ref</code> object 2457 * in the Java programming language. 2458 * 2459 * @param columnIndex the first column is 1, the second is 2, ... 2460 * @return a <code>Ref</code> object representing an SQL <code>REF</code> 2461 * value 2462 * @exception SQLException if the columnIndex is not valid; 2463 * if a database access error occurs 2464 * or this method is called on a closed result set 2465 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2466 * this method 2467 * @since 1.2 2468 */ getRef(int columnIndex)2469 Ref getRef(int columnIndex) throws SQLException; 2470 2471 /** 2472 * Retrieves the value of the designated column in the current row 2473 * of this <code>ResultSet</code> object as a <code>Blob</code> object 2474 * in the Java programming language. 2475 * 2476 * @param columnIndex the first column is 1, the second is 2, ... 2477 * @return a <code>Blob</code> object representing the SQL 2478 * <code>BLOB</code> value in the specified column 2479 * @exception SQLException if the columnIndex is not valid; 2480 * if a database access error occurs 2481 * or this method is called on a closed result set 2482 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2483 * this method 2484 * @since 1.2 2485 */ getBlob(int columnIndex)2486 Blob getBlob(int columnIndex) throws SQLException; 2487 2488 /** 2489 * Retrieves the value of the designated column in the current row 2490 * of this <code>ResultSet</code> object as a <code>Clob</code> object 2491 * in the Java programming language. 2492 * 2493 * @param columnIndex the first column is 1, the second is 2, ... 2494 * @return a <code>Clob</code> object representing the SQL 2495 * <code>CLOB</code> value in the specified column 2496 * @exception SQLException if the columnIndex is not valid; 2497 * if a database access error occurs 2498 * or this method is called on a closed result set 2499 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2500 * this method 2501 * @since 1.2 2502 */ getClob(int columnIndex)2503 Clob getClob(int columnIndex) throws SQLException; 2504 2505 /** 2506 * Retrieves the value of the designated column in the current row 2507 * of this <code>ResultSet</code> object as an <code>Array</code> object 2508 * in the Java programming language. 2509 * 2510 * @param columnIndex the first column is 1, the second is 2, ... 2511 * @return an <code>Array</code> object representing the SQL 2512 * <code>ARRAY</code> value in the specified column 2513 * @exception SQLException if the columnIndex is not valid; 2514 * if a database access error occurs 2515 * or this method is called on a closed result set 2516 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2517 * this method 2518 * @since 1.2 2519 */ getArray(int columnIndex)2520 Array getArray(int columnIndex) throws SQLException; 2521 2522 /** 2523 * Retrieves the value of the designated column in the current row 2524 * of this <code>ResultSet</code> object as an <code>Object</code> 2525 * in the Java programming language. 2526 * If the value is an SQL <code>NULL</code>, 2527 * the driver returns a Java <code>null</code>. 2528 * This method uses the specified <code>Map</code> object for 2529 * custom mapping if appropriate. 2530 * 2531 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2532 * @param map a <code>java.util.Map</code> object that contains the mapping 2533 * from SQL type names to classes in the Java programming language 2534 * @return an <code>Object</code> representing the SQL value in the 2535 * specified column 2536 * @exception SQLException if the columnLabel is not valid; 2537 * if a database access error occurs 2538 * or this method is called on a closed result set 2539 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2540 * this method 2541 * @since 1.2 2542 */ getObject(String columnLabel, java.util.Map<String,Class<?>> map)2543 Object getObject(String columnLabel, java.util.Map<String,Class<?>> map) 2544 throws SQLException; 2545 2546 /** 2547 * Retrieves the value of the designated column in the current row 2548 * of this <code>ResultSet</code> object as a <code>Ref</code> object 2549 * in the Java programming language. 2550 * 2551 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2552 * @return a <code>Ref</code> object representing the SQL <code>REF</code> 2553 * value in the specified column 2554 * @exception SQLException if the columnLabel is not valid; 2555 * if a database access error occurs 2556 * or this method is called on a closed result set 2557 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2558 * this method 2559 * @since 1.2 2560 */ getRef(String columnLabel)2561 Ref getRef(String columnLabel) throws SQLException; 2562 2563 /** 2564 * Retrieves the value of the designated column in the current row 2565 * of this <code>ResultSet</code> object as a <code>Blob</code> object 2566 * in the Java programming language. 2567 * 2568 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2569 * @return a <code>Blob</code> object representing the SQL <code>BLOB</code> 2570 * value in the specified column 2571 * @exception SQLException if the columnLabel is not valid; 2572 * if a database access error occurs 2573 * or this method is called on a closed result set 2574 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2575 * this method 2576 * @since 1.2 2577 */ getBlob(String columnLabel)2578 Blob getBlob(String columnLabel) throws SQLException; 2579 2580 /** 2581 * Retrieves the value of the designated column in the current row 2582 * of this <code>ResultSet</code> object as a <code>Clob</code> object 2583 * in the Java programming language. 2584 * 2585 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2586 * @return a <code>Clob</code> object representing the SQL <code>CLOB</code> 2587 * value in the specified column 2588 * @exception SQLException if the columnLabel is not valid; 2589 * if a database access error occurs 2590 * or this method is called on a closed result set 2591 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2592 * this method 2593 * @since 1.2 2594 */ getClob(String columnLabel)2595 Clob getClob(String columnLabel) throws SQLException; 2596 2597 /** 2598 * Retrieves the value of the designated column in the current row 2599 * of this <code>ResultSet</code> object as an <code>Array</code> object 2600 * in the Java programming language. 2601 * 2602 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2603 * @return an <code>Array</code> object representing the SQL <code>ARRAY</code> value in 2604 * the specified column 2605 * @exception SQLException if the columnLabel is not valid; 2606 * if a database access error occurs 2607 * or this method is called on a closed result set 2608 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2609 * this method 2610 * @since 1.2 2611 */ getArray(String columnLabel)2612 Array getArray(String columnLabel) throws SQLException; 2613 2614 /** 2615 * Retrieves the value of the designated column in the current row 2616 * of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object 2617 * in the Java programming language. 2618 * This method uses the given calendar to construct an appropriate millisecond 2619 * value for the date if the underlying database does not store 2620 * timezone information. 2621 * 2622 * @param columnIndex the first column is 1, the second is 2, ... 2623 * @param cal the <code>java.util.Calendar</code> object 2624 * to use in constructing the date 2625 * @return the column value as a <code>java.sql.Date</code> object; 2626 * if the value is SQL <code>NULL</code>, 2627 * the value returned is <code>null</code> in the Java programming language 2628 * @exception SQLException if the columnIndex is not valid; 2629 * if a database access error occurs 2630 * or this method is called on a closed result set 2631 * @since 1.2 2632 */ getDate(int columnIndex, Calendar cal)2633 java.sql.Date getDate(int columnIndex, Calendar cal) throws SQLException; 2634 2635 /** 2636 * Retrieves the value of the designated column in the current row 2637 * of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object 2638 * in the Java programming language. 2639 * This method uses the given calendar to construct an appropriate millisecond 2640 * value for the date if the underlying database does not store 2641 * timezone information. 2642 * 2643 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2644 * @param cal the <code>java.util.Calendar</code> object 2645 * to use in constructing the date 2646 * @return the column value as a <code>java.sql.Date</code> object; 2647 * if the value is SQL <code>NULL</code>, 2648 * the value returned is <code>null</code> in the Java programming language 2649 * @exception SQLException if the columnLabel is not valid; 2650 * if a database access error occurs 2651 * or this method is called on a closed result set 2652 * @since 1.2 2653 */ getDate(String columnLabel, Calendar cal)2654 java.sql.Date getDate(String columnLabel, Calendar cal) throws SQLException; 2655 2656 /** 2657 * Retrieves the value of the designated column in the current row 2658 * of this <code>ResultSet</code> object as a <code>java.sql.Time</code> object 2659 * in the Java programming language. 2660 * This method uses the given calendar to construct an appropriate millisecond 2661 * value for the time if the underlying database does not store 2662 * timezone information. 2663 * 2664 * @param columnIndex the first column is 1, the second is 2, ... 2665 * @param cal the <code>java.util.Calendar</code> object 2666 * to use in constructing the time 2667 * @return the column value as a <code>java.sql.Time</code> object; 2668 * if the value is SQL <code>NULL</code>, 2669 * the value returned is <code>null</code> in the Java programming language 2670 * @exception SQLException if the columnIndex is not valid; 2671 * if a database access error occurs 2672 * or this method is called on a closed result set 2673 * @since 1.2 2674 */ getTime(int columnIndex, Calendar cal)2675 java.sql.Time getTime(int columnIndex, Calendar cal) throws SQLException; 2676 2677 /** 2678 * Retrieves the value of the designated column in the current row 2679 * of this <code>ResultSet</code> object as a <code>java.sql.Time</code> object 2680 * in the Java programming language. 2681 * This method uses the given calendar to construct an appropriate millisecond 2682 * value for the time if the underlying database does not store 2683 * timezone information. 2684 * 2685 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2686 * @param cal the <code>java.util.Calendar</code> object 2687 * to use in constructing the time 2688 * @return the column value as a <code>java.sql.Time</code> object; 2689 * if the value is SQL <code>NULL</code>, 2690 * the value returned is <code>null</code> in the Java programming language 2691 * @exception SQLException if the columnLabel is not valid; 2692 * if a database access error occurs 2693 * or this method is called on a closed result set 2694 * @since 1.2 2695 */ getTime(String columnLabel, Calendar cal)2696 java.sql.Time getTime(String columnLabel, Calendar cal) throws SQLException; 2697 2698 /** 2699 * Retrieves the value of the designated column in the current row 2700 * of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object 2701 * in the Java programming language. 2702 * This method uses the given calendar to construct an appropriate millisecond 2703 * value for the timestamp if the underlying database does not store 2704 * timezone information. 2705 * 2706 * @param columnIndex the first column is 1, the second is 2, ... 2707 * @param cal the <code>java.util.Calendar</code> object 2708 * to use in constructing the timestamp 2709 * @return the column value as a <code>java.sql.Timestamp</code> object; 2710 * if the value is SQL <code>NULL</code>, 2711 * the value returned is <code>null</code> in the Java programming language 2712 * @exception SQLException if the columnIndex is not valid; 2713 * if a database access error occurs 2714 * or this method is called on a closed result set 2715 * @since 1.2 2716 */ getTimestamp(int columnIndex, Calendar cal)2717 java.sql.Timestamp getTimestamp(int columnIndex, Calendar cal) 2718 throws SQLException; 2719 2720 /** 2721 * Retrieves the value of the designated column in the current row 2722 * of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object 2723 * in the Java programming language. 2724 * This method uses the given calendar to construct an appropriate millisecond 2725 * value for the timestamp if the underlying database does not store 2726 * timezone information. 2727 * 2728 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2729 * @param cal the <code>java.util.Calendar</code> object 2730 * to use in constructing the date 2731 * @return the column value as a <code>java.sql.Timestamp</code> object; 2732 * if the value is SQL <code>NULL</code>, 2733 * the value returned is <code>null</code> in the Java programming language 2734 * @exception SQLException if the columnLabel is not valid or 2735 * if a database access error occurs 2736 * or this method is called on a closed result set 2737 * @since 1.2 2738 */ getTimestamp(String columnLabel, Calendar cal)2739 java.sql.Timestamp getTimestamp(String columnLabel, Calendar cal) 2740 throws SQLException; 2741 2742 //-------------------------- JDBC 3.0 ---------------------------------------- 2743 2744 /** 2745 * The constant indicating that open <code>ResultSet</code> objects with this 2746 * holdability will remain open when the current transaction is commited. 2747 * 2748 * @since 1.4 2749 */ 2750 int HOLD_CURSORS_OVER_COMMIT = 1; 2751 2752 /** 2753 * The constant indicating that open <code>ResultSet</code> objects with this 2754 * holdability will be closed when the current transaction is commited. 2755 * 2756 * @since 1.4 2757 */ 2758 int CLOSE_CURSORS_AT_COMMIT = 2; 2759 2760 /** 2761 * Retrieves the value of the designated column in the current row 2762 * of this <code>ResultSet</code> object as a <code>java.net.URL</code> 2763 * object in the Java programming language. 2764 * 2765 * @param columnIndex the index of the column 1 is the first, 2 is the second,... 2766 * @return the column value as a <code>java.net.URL</code> object; 2767 * if the value is SQL <code>NULL</code>, 2768 * the value returned is <code>null</code> in the Java programming language 2769 * @exception SQLException if the columnIndex is not valid; 2770 * if a database access error occurs; this method 2771 * is called on a closed result set or if a URL is malformed 2772 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2773 * this method 2774 * @since 1.4 2775 */ getURL(int columnIndex)2776 java.net.URL getURL(int columnIndex) throws SQLException; 2777 2778 /** 2779 * Retrieves the value of the designated column in the current row 2780 * of this <code>ResultSet</code> object as a <code>java.net.URL</code> 2781 * object in the Java programming language. 2782 * 2783 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2784 * @return the column value as a <code>java.net.URL</code> object; 2785 * if the value is SQL <code>NULL</code>, 2786 * the value returned is <code>null</code> in the Java programming language 2787 * @exception SQLException if the columnLabel is not valid; 2788 * if a database access error occurs; this method 2789 * is called on a closed result set or if a URL is malformed 2790 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2791 * this method 2792 * @since 1.4 2793 */ getURL(String columnLabel)2794 java.net.URL getURL(String columnLabel) throws SQLException; 2795 2796 /** 2797 * Updates the designated column with a <code>java.sql.Ref</code> value. 2798 * The updater methods are used to update column values in the 2799 * current row or the insert row. The updater methods do not 2800 * update the underlying database; instead the <code>updateRow</code> or 2801 * <code>insertRow</code> methods are called to update the database. 2802 * 2803 * @param columnIndex the first column is 1, the second is 2, ... 2804 * @param x the new column value 2805 * @exception SQLException if the columnIndex is not valid; 2806 * if a database access error occurs; 2807 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2808 * or this method is called on a closed result set 2809 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2810 * this method 2811 * @since 1.4 2812 */ updateRef(int columnIndex, java.sql.Ref x)2813 void updateRef(int columnIndex, java.sql.Ref x) throws SQLException; 2814 2815 /** 2816 * Updates the designated column with a <code>java.sql.Ref</code> value. 2817 * The updater methods are used to update column values in the 2818 * current row or the insert row. The updater methods do not 2819 * update the underlying database; instead the <code>updateRow</code> or 2820 * <code>insertRow</code> methods are called to update the database. 2821 * 2822 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2823 * @param x the new column value 2824 * @exception SQLException if the columnLabel is not valid; 2825 * if a database access error occurs; 2826 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2827 * or this method is called on a closed result set 2828 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2829 * this method 2830 * @since 1.4 2831 */ updateRef(String columnLabel, java.sql.Ref x)2832 void updateRef(String columnLabel, java.sql.Ref x) throws SQLException; 2833 2834 /** 2835 * Updates the designated column with a <code>java.sql.Blob</code> value. 2836 * The updater methods are used to update column values in the 2837 * current row or the insert row. The updater methods do not 2838 * update the underlying database; instead the <code>updateRow</code> or 2839 * <code>insertRow</code> methods are called to update the database. 2840 * 2841 * @param columnIndex the first column is 1, the second is 2, ... 2842 * @param x the new column value 2843 * @exception SQLException if the columnIndex is not valid; 2844 * if a database access error occurs; 2845 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2846 * or this method is called on a closed result set 2847 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2848 * this method 2849 * @since 1.4 2850 */ updateBlob(int columnIndex, java.sql.Blob x)2851 void updateBlob(int columnIndex, java.sql.Blob x) throws SQLException; 2852 2853 /** 2854 * Updates the designated column with a <code>java.sql.Blob</code> value. 2855 * The updater methods are used to update column values in the 2856 * current row or the insert row. The updater methods do not 2857 * update the underlying database; instead the <code>updateRow</code> or 2858 * <code>insertRow</code> methods are called to update the database. 2859 * 2860 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2861 * @param x the new column value 2862 * @exception SQLException if the columnLabel is not valid; 2863 * if a database access error occurs; 2864 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2865 * or this method is called on a closed result set 2866 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2867 * this method 2868 * @since 1.4 2869 */ updateBlob(String columnLabel, java.sql.Blob x)2870 void updateBlob(String columnLabel, java.sql.Blob x) throws SQLException; 2871 2872 /** 2873 * Updates the designated column with a <code>java.sql.Clob</code> value. 2874 * The updater methods are used to update column values in the 2875 * current row or the insert row. The updater methods do not 2876 * update the underlying database; instead the <code>updateRow</code> or 2877 * <code>insertRow</code> methods are called to update the database. 2878 * 2879 * @param columnIndex the first column is 1, the second is 2, ... 2880 * @param x the new column value 2881 * @exception SQLException if the columnIndex is not valid; 2882 * if a database access error occurs; 2883 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2884 * or this method is called on a closed result set 2885 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2886 * this method 2887 * @since 1.4 2888 */ updateClob(int columnIndex, java.sql.Clob x)2889 void updateClob(int columnIndex, java.sql.Clob x) throws SQLException; 2890 2891 /** 2892 * Updates the designated column with a <code>java.sql.Clob</code> value. 2893 * The updater methods are used to update column values in the 2894 * current row or the insert row. The updater methods do not 2895 * update the underlying database; instead the <code>updateRow</code> or 2896 * <code>insertRow</code> methods are called to update the database. 2897 * 2898 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2899 * @param x the new column value 2900 * @exception SQLException if the columnLabel is not valid; 2901 * if a database access error occurs; 2902 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2903 * or this method is called on a closed result set 2904 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2905 * this method 2906 * @since 1.4 2907 */ updateClob(String columnLabel, java.sql.Clob x)2908 void updateClob(String columnLabel, java.sql.Clob x) throws SQLException; 2909 2910 /** 2911 * Updates the designated column with a <code>java.sql.Array</code> value. 2912 * The updater methods are used to update column values in the 2913 * current row or the insert row. The updater methods do not 2914 * update the underlying database; instead the <code>updateRow</code> or 2915 * <code>insertRow</code> methods are called to update the database. 2916 * 2917 * @param columnIndex the first column is 1, the second is 2, ... 2918 * @param x the new column value 2919 * @exception SQLException if the columnIndex is not valid; 2920 * if a database access error occurs; 2921 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2922 * or this method is called on a closed result set 2923 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2924 * this method 2925 * @since 1.4 2926 */ updateArray(int columnIndex, java.sql.Array x)2927 void updateArray(int columnIndex, java.sql.Array x) throws SQLException; 2928 2929 /** 2930 * Updates the designated column with a <code>java.sql.Array</code> value. 2931 * The updater methods are used to update column values in the 2932 * current row or the insert row. The updater methods do not 2933 * update the underlying database; instead the <code>updateRow</code> or 2934 * <code>insertRow</code> methods are called to update the database. 2935 * 2936 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2937 * @param x the new column value 2938 * @exception SQLException if the columnLabel is not valid; 2939 * if a database access error occurs; 2940 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2941 * or this method is called on a closed result set 2942 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2943 * this method 2944 * @since 1.4 2945 */ updateArray(String columnLabel, java.sql.Array x)2946 void updateArray(String columnLabel, java.sql.Array x) throws SQLException; 2947 2948 //------------------------- JDBC 4.0 ----------------------------------- 2949 2950 /** 2951 * Retrieves the value of the designated column in the current row of this 2952 * <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java 2953 * programming language. 2954 * 2955 * @param columnIndex the first column is 1, the second 2, ... 2956 * @return the column value; if the value is a SQL <code>NULL</code> the 2957 * value returned is <code>null</code> 2958 * @throws SQLException if the columnIndex is not valid; 2959 * if a database access error occurs 2960 * or this method is called on a closed result set 2961 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2962 * this method 2963 * @since 1.6 2964 */ getRowId(int columnIndex)2965 RowId getRowId(int columnIndex) throws SQLException; 2966 2967 /** 2968 * Retrieves the value of the designated column in the current row of this 2969 * <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java 2970 * programming language. 2971 * 2972 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 2973 * @return the column value ; if the value is a SQL <code>NULL</code> the 2974 * value returned is <code>null</code> 2975 * @throws SQLException if the columnLabel is not valid; 2976 * if a database access error occurs 2977 * or this method is called on a closed result set 2978 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2979 * this method 2980 * @since 1.6 2981 */ getRowId(String columnLabel)2982 RowId getRowId(String columnLabel) throws SQLException; 2983 2984 /** 2985 * Updates the designated column with a <code>RowId</code> value. The updater 2986 * methods are used to update column values in the current row or the insert 2987 * row. The updater methods do not update the underlying database; instead 2988 * the <code>updateRow</code> or <code>insertRow</code> methods are called 2989 * to update the database. 2990 * 2991 * @param columnIndex the first column is 1, the second 2, ... 2992 * @param x the column value 2993 * @exception SQLException if the columnIndex is not valid; 2994 * if a database access error occurs; 2995 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 2996 * or this method is called on a closed result set 2997 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 2998 * this method 2999 * @since 1.6 3000 */ updateRowId(int columnIndex, RowId x)3001 void updateRowId(int columnIndex, RowId x) throws SQLException; 3002 3003 /** 3004 * Updates the designated column with a <code>RowId</code> value. The updater 3005 * methods are used to update column values in the current row or the insert 3006 * row. The updater methods do not update the underlying database; instead 3007 * the <code>updateRow</code> or <code>insertRow</code> methods are called 3008 * to update the database. 3009 * 3010 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3011 * @param x the column value 3012 * @exception SQLException if the columnLabel is not valid; 3013 * if a database access error occurs; 3014 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3015 * or this method is called on a closed result set 3016 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3017 * this method 3018 * @since 1.6 3019 */ updateRowId(String columnLabel, RowId x)3020 void updateRowId(String columnLabel, RowId x) throws SQLException; 3021 3022 /** 3023 * Retrieves the holdability of this <code>ResultSet</code> object 3024 * @return either <code>ResultSet.HOLD_CURSORS_OVER_COMMIT</code> or <code>ResultSet.CLOSE_CURSORS_AT_COMMIT</code> 3025 * @throws SQLException if a database access error occurs 3026 * or this method is called on a closed result set 3027 * @since 1.6 3028 */ getHoldability()3029 int getHoldability() throws SQLException; 3030 3031 /** 3032 * Retrieves whether this <code>ResultSet</code> object has been closed. A <code>ResultSet</code> is closed if the 3033 * method close has been called on it, or if it is automatically closed. 3034 * 3035 * @return true if this <code>ResultSet</code> object is closed; false if it is still open 3036 * @throws SQLException if a database access error occurs 3037 * @since 1.6 3038 */ isClosed()3039 boolean isClosed() throws SQLException; 3040 3041 /** 3042 * Updates the designated column with a <code>String</code> value. 3043 * It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code> 3044 * and <code>LONGNVARCHAR</code> columns. 3045 * The updater methods are used to update column values in the 3046 * current row or the insert row. The updater methods do not 3047 * update the underlying database; instead the <code>updateRow</code> or 3048 * <code>insertRow</code> methods are called to update the database. 3049 * 3050 * @param columnIndex the first column is 1, the second 2, ... 3051 * @param nString the value for the column to be updated 3052 * @throws SQLException if the columnIndex is not valid; 3053 * if the driver does not support national 3054 * character sets; if the driver can detect that a data conversion 3055 * error could occur; this method is called on a closed result set; 3056 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3057 * or if a database access error occurs 3058 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3059 * this method 3060 * @since 1.6 3061 */ updateNString(int columnIndex, String nString)3062 void updateNString(int columnIndex, String nString) throws SQLException; 3063 3064 /** 3065 * Updates the designated column with a <code>String</code> value. 3066 * It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code> 3067 * and <code>LONGNVARCHAR</code> columns. 3068 * The updater methods are used to update column values in the 3069 * current row or the insert row. The updater methods do not 3070 * update the underlying database; instead the <code>updateRow</code> or 3071 * <code>insertRow</code> methods are called to update the database. 3072 * 3073 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3074 * @param nString the value for the column to be updated 3075 * @throws SQLException if the columnLabel is not valid; 3076 * if the driver does not support national 3077 * character sets; if the driver can detect that a data conversion 3078 * error could occur; this method is called on a closed result set; 3079 * the result set concurrency is <CODE>CONCUR_READ_ONLY</code> 3080 * or if a database access error occurs 3081 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3082 * this method 3083 * @since 1.6 3084 */ updateNString(String columnLabel, String nString)3085 void updateNString(String columnLabel, String nString) throws SQLException; 3086 3087 /** 3088 * Updates the designated column with a <code>java.sql.NClob</code> value. 3089 * The updater methods are used to update column values in the 3090 * current row or the insert row. The updater methods do not 3091 * update the underlying database; instead the <code>updateRow</code> or 3092 * <code>insertRow</code> methods are called to update the database. 3093 * 3094 * @param columnIndex the first column is 1, the second 2, ... 3095 * @param nClob the value for the column to be updated 3096 * @throws SQLException if the columnIndex is not valid; 3097 * if the driver does not support national 3098 * character sets; if the driver can detect that a data conversion 3099 * error could occur; this method is called on a closed result set; 3100 * if a database access error occurs or 3101 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3102 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3103 * this method 3104 * @since 1.6 3105 */ updateNClob(int columnIndex, NClob nClob)3106 void updateNClob(int columnIndex, NClob nClob) throws SQLException; 3107 3108 /** 3109 * Updates the designated column with a <code>java.sql.NClob</code> value. 3110 * The updater methods are used to update column values in the 3111 * current row or the insert row. The updater methods do not 3112 * update the underlying database; instead the <code>updateRow</code> or 3113 * <code>insertRow</code> methods are called to update the database. 3114 * 3115 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3116 * @param nClob the value for the column to be updated 3117 * @throws SQLException if the columnLabel is not valid; 3118 * if the driver does not support national 3119 * character sets; if the driver can detect that a data conversion 3120 * error could occur; this method is called on a closed result set; 3121 * if a database access error occurs or 3122 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3123 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3124 * this method 3125 * @since 1.6 3126 */ updateNClob(String columnLabel, NClob nClob)3127 void updateNClob(String columnLabel, NClob nClob) throws SQLException; 3128 3129 /** 3130 * Retrieves the value of the designated column in the current row 3131 * of this <code>ResultSet</code> object as a <code>NClob</code> object 3132 * in the Java programming language. 3133 * 3134 * @param columnIndex the first column is 1, the second is 2, ... 3135 * @return a <code>NClob</code> object representing the SQL 3136 * <code>NCLOB</code> value in the specified column 3137 * @exception SQLException if the columnIndex is not valid; 3138 * if the driver does not support national 3139 * character sets; if the driver can detect that a data conversion 3140 * error could occur; this method is called on a closed result set 3141 * or if a database access error occurs 3142 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3143 * this method 3144 * @since 1.6 3145 */ getNClob(int columnIndex)3146 NClob getNClob(int columnIndex) throws SQLException; 3147 3148 /** 3149 * Retrieves the value of the designated column in the current row 3150 * of this <code>ResultSet</code> object as a <code>NClob</code> object 3151 * in the Java programming language. 3152 * 3153 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3154 * @return a <code>NClob</code> object representing the SQL <code>NCLOB</code> 3155 * value in the specified column 3156 * @exception SQLException if the columnLabel is not valid; 3157 * if the driver does not support national 3158 * character sets; if the driver can detect that a data conversion 3159 * error could occur; this method is called on a closed result set 3160 * or if a database access error occurs 3161 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3162 * this method 3163 * @since 1.6 3164 */ getNClob(String columnLabel)3165 NClob getNClob(String columnLabel) throws SQLException; 3166 3167 /** 3168 * Retrieves the value of the designated column in the current row of 3169 * this <code>ResultSet</code> as a 3170 * <code>java.sql.SQLXML</code> object in the Java programming language. 3171 * @param columnIndex the first column is 1, the second is 2, ... 3172 * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value 3173 * @throws SQLException if the columnIndex is not valid; 3174 * if a database access error occurs 3175 * or this method is called on a closed result set 3176 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3177 * this method 3178 * @since 1.6 3179 */ getSQLXML(int columnIndex)3180 SQLXML getSQLXML(int columnIndex) throws SQLException; 3181 3182 /** 3183 * Retrieves the value of the designated column in the current row of 3184 * this <code>ResultSet</code> as a 3185 * <code>java.sql.SQLXML</code> object in the Java programming language. 3186 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3187 * @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value 3188 * @throws SQLException if the columnLabel is not valid; 3189 * if a database access error occurs 3190 * or this method is called on a closed result set 3191 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3192 * this method 3193 * @since 1.6 3194 */ getSQLXML(String columnLabel)3195 SQLXML getSQLXML(String columnLabel) throws SQLException; 3196 /** 3197 * Updates the designated column with a <code>java.sql.SQLXML</code> value. 3198 * The updater 3199 * methods are used to update column values in the current row or the insert 3200 * row. The updater methods do not update the underlying database; instead 3201 * the <code>updateRow</code> or <code>insertRow</code> methods are called 3202 * to update the database. 3203 * <p> 3204 * 3205 * @param columnIndex the first column is 1, the second 2, ... 3206 * @param xmlObject the value for the column to be updated 3207 * @throws SQLException if the columnIndex is not valid; 3208 * if a database access error occurs; this method 3209 * is called on a closed result set; 3210 * the <code>java.xml.transform.Result</code>, 3211 * <code>Writer</code> or <code>OutputStream</code> has not been closed 3212 * for the <code>SQLXML</code> object; 3213 * if there is an error processing the XML value or 3214 * the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method 3215 * of the exception may provide a more detailed exception, for example, if the 3216 * stream does not contain valid XML. 3217 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3218 * this method 3219 * @since 1.6 3220 */ updateSQLXML(int columnIndex, SQLXML xmlObject)3221 void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException; 3222 /** 3223 * Updates the designated column with a <code>java.sql.SQLXML</code> value. 3224 * The updater 3225 * methods are used to update column values in the current row or the insert 3226 * row. The updater methods do not update the underlying database; instead 3227 * the <code>updateRow</code> or <code>insertRow</code> methods are called 3228 * to update the database. 3229 * <p> 3230 * 3231 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3232 * @param xmlObject the column value 3233 * @throws SQLException if the columnLabel is not valid; 3234 * if a database access error occurs; this method 3235 * is called on a closed result set; 3236 * the <code>java.xml.transform.Result</code>, 3237 * <code>Writer</code> or <code>OutputStream</code> has not been closed 3238 * for the <code>SQLXML</code> object; 3239 * if there is an error processing the XML value or 3240 * the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method 3241 * of the exception may provide a more detailed exception, for example, if the 3242 * stream does not contain valid XML. 3243 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3244 * this method 3245 * @since 1.6 3246 */ updateSQLXML(String columnLabel, SQLXML xmlObject)3247 void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException; 3248 3249 /** 3250 * Retrieves the value of the designated column in the current row 3251 * of this <code>ResultSet</code> object as 3252 * a <code>String</code> in the Java programming language. 3253 * It is intended for use when 3254 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> 3255 * and <code>LONGNVARCHAR</code> columns. 3256 * 3257 * @param columnIndex the first column is 1, the second is 2, ... 3258 * @return the column value; if the value is SQL <code>NULL</code>, the 3259 * value returned is <code>null</code> 3260 * @exception SQLException if the columnIndex is not valid; 3261 * if a database access error occurs 3262 * or this method is called on a closed result set 3263 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3264 * this method 3265 * @since 1.6 3266 */ getNString(int columnIndex)3267 String getNString(int columnIndex) throws SQLException; 3268 3269 3270 /** 3271 * Retrieves the value of the designated column in the current row 3272 * of this <code>ResultSet</code> object as 3273 * a <code>String</code> in the Java programming language. 3274 * It is intended for use when 3275 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> 3276 * and <code>LONGNVARCHAR</code> columns. 3277 * 3278 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3279 * @return the column value; if the value is SQL <code>NULL</code>, the 3280 * value returned is <code>null</code> 3281 * @exception SQLException if the columnLabel is not valid; 3282 * if a database access error occurs 3283 * or this method is called on a closed result set 3284 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3285 * this method 3286 * @since 1.6 3287 */ getNString(String columnLabel)3288 String getNString(String columnLabel) throws SQLException; 3289 3290 3291 /** 3292 * Retrieves the value of the designated column in the current row 3293 * of this <code>ResultSet</code> object as a 3294 * <code>java.io.Reader</code> object. 3295 * It is intended for use when 3296 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> 3297 * and <code>LONGNVARCHAR</code> columns. 3298 * 3299 * @return a <code>java.io.Reader</code> object that contains the column 3300 * value; if the value is SQL <code>NULL</code>, the value returned is 3301 * <code>null</code> in the Java programming language. 3302 * @param columnIndex the first column is 1, the second is 2, ... 3303 * @exception SQLException if the columnIndex is not valid; 3304 * if a database access error occurs 3305 * or this method is called on a closed result set 3306 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3307 * this method 3308 * @since 1.6 3309 */ getNCharacterStream(int columnIndex)3310 java.io.Reader getNCharacterStream(int columnIndex) throws SQLException; 3311 3312 /** 3313 * Retrieves the value of the designated column in the current row 3314 * of this <code>ResultSet</code> object as a 3315 * <code>java.io.Reader</code> object. 3316 * It is intended for use when 3317 * accessing <code>NCHAR</code>,<code>NVARCHAR</code> 3318 * and <code>LONGNVARCHAR</code> columns. 3319 * 3320 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3321 * @return a <code>java.io.Reader</code> object that contains the column 3322 * value; if the value is SQL <code>NULL</code>, the value returned is 3323 * <code>null</code> in the Java programming language 3324 * @exception SQLException if the columnLabel is not valid; 3325 * if a database access error occurs 3326 * or this method is called on a closed result set 3327 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3328 * this method 3329 * @since 1.6 3330 */ getNCharacterStream(String columnLabel)3331 java.io.Reader getNCharacterStream(String columnLabel) throws SQLException; 3332 3333 /** 3334 * Updates the designated column with a character stream value, which will have 3335 * the specified number of bytes. The 3336 * driver does the necessary conversion from Java character format to 3337 * the national character set in the database. 3338 * It is intended for use when 3339 * updating <code>NCHAR</code>,<code>NVARCHAR</code> 3340 * and <code>LONGNVARCHAR</code> columns. 3341 * <p> 3342 * The updater methods are used to update column values in the 3343 * current row or the insert row. The updater methods do not 3344 * update the underlying database; instead the <code>updateRow</code> or 3345 * <code>insertRow</code> methods are called to update the database. 3346 * 3347 * @param columnIndex the first column is 1, the second is 2, ... 3348 * @param x the new column value 3349 * @param length the length of the stream 3350 * @exception SQLException if the columnIndex is not valid; 3351 * if a database access error occurs; 3352 * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set 3353 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3354 * this method 3355 * @since 1.6 3356 */ updateNCharacterStream(int columnIndex, java.io.Reader x, long length)3357 void updateNCharacterStream(int columnIndex, 3358 java.io.Reader x, 3359 long length) throws SQLException; 3360 3361 /** 3362 * Updates the designated column with a character stream value, which will have 3363 * the specified number of bytes. The 3364 * driver does the necessary conversion from Java character format to 3365 * the national character set in the database. 3366 * It is intended for use when 3367 * updating <code>NCHAR</code>,<code>NVARCHAR</code> 3368 * and <code>LONGNVARCHAR</code> columns. 3369 * <p> 3370 * The updater methods are used to update column values in the 3371 * current row or the insert row. The updater methods do not 3372 * update the underlying database; instead the <code>updateRow</code> or 3373 * <code>insertRow</code> methods are called to update the database. 3374 * 3375 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3376 * @param reader the <code>java.io.Reader</code> object containing 3377 * the new column value 3378 * @param length the length of the stream 3379 * @exception SQLException if the columnLabel is not valid; 3380 * if a database access error occurs; 3381 * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set 3382 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3383 * this method 3384 * @since 1.6 3385 */ updateNCharacterStream(String columnLabel, java.io.Reader reader, long length)3386 void updateNCharacterStream(String columnLabel, 3387 java.io.Reader reader, 3388 long length) throws SQLException; 3389 /** 3390 * Updates the designated column with an ascii stream value, which will have 3391 * the specified number of bytes. 3392 * <p> 3393 * The updater methods are used to update column values in the 3394 * current row or the insert row. The updater methods do not 3395 * update the underlying database; instead the <code>updateRow</code> or 3396 * <code>insertRow</code> methods are called to update the database. 3397 * 3398 * @param columnIndex the first column is 1, the second is 2, ... 3399 * @param x the new column value 3400 * @param length the length of the stream 3401 * @exception SQLException if the columnIndex is not valid; 3402 * if a database access error occurs; 3403 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3404 * or this method is called on a closed result set 3405 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3406 * this method 3407 * @since 1.6 3408 */ updateAsciiStream(int columnIndex, java.io.InputStream x, long length)3409 void updateAsciiStream(int columnIndex, 3410 java.io.InputStream x, 3411 long length) throws SQLException; 3412 3413 /** 3414 * Updates the designated column with a binary stream value, which will have 3415 * the specified number of bytes. 3416 * <p> 3417 * The updater methods are used to update column values in the 3418 * current row or the insert row. The updater methods do not 3419 * update the underlying database; instead the <code>updateRow</code> or 3420 * <code>insertRow</code> methods are called to update the database. 3421 * 3422 * @param columnIndex the first column is 1, the second is 2, ... 3423 * @param x the new column value 3424 * @param length the length of the stream 3425 * @exception SQLException if the columnIndex is not valid; 3426 * if a database access error occurs; 3427 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3428 * or this method is called on a closed result set 3429 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3430 * this method 3431 * @since 1.6 3432 */ updateBinaryStream(int columnIndex, java.io.InputStream x, long length)3433 void updateBinaryStream(int columnIndex, 3434 java.io.InputStream x, 3435 long length) throws SQLException; 3436 3437 /** 3438 * Updates the designated column with a character stream value, which will have 3439 * the specified number of bytes. 3440 * <p> 3441 * The updater methods are used to update column values in the 3442 * current row or the insert row. The updater methods do not 3443 * update the underlying database; instead the <code>updateRow</code> or 3444 * <code>insertRow</code> methods are called to update the database. 3445 * 3446 * @param columnIndex the first column is 1, the second is 2, ... 3447 * @param x the new column value 3448 * @param length the length of the stream 3449 * @exception SQLException if the columnIndex is not valid; 3450 * if a database access error occurs; 3451 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3452 * or this method is called on a closed result set 3453 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3454 * this method 3455 * @since 1.6 3456 */ updateCharacterStream(int columnIndex, java.io.Reader x, long length)3457 void updateCharacterStream(int columnIndex, 3458 java.io.Reader x, 3459 long length) throws SQLException; 3460 /** 3461 * Updates the designated column with an ascii stream value, which will have 3462 * the specified number of bytes. 3463 * <p> 3464 * The updater methods are used to update column values in the 3465 * current row or the insert row. The updater methods do not 3466 * update the underlying database; instead the <code>updateRow</code> or 3467 * <code>insertRow</code> methods are called to update the database. 3468 * 3469 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3470 * @param x the new column value 3471 * @param length the length of the stream 3472 * @exception SQLException if the columnLabel is not valid; 3473 * if a database access error occurs; 3474 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3475 * or this method is called on a closed result set 3476 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3477 * this method 3478 * @since 1.6 3479 */ updateAsciiStream(String columnLabel, java.io.InputStream x, long length)3480 void updateAsciiStream(String columnLabel, 3481 java.io.InputStream x, 3482 long length) throws SQLException; 3483 3484 /** 3485 * Updates the designated column with a binary stream value, which will have 3486 * the specified number of bytes. 3487 * <p> 3488 * The updater methods are used to update column values in the 3489 * current row or the insert row. The updater methods do not 3490 * update the underlying database; instead the <code>updateRow</code> or 3491 * <code>insertRow</code> methods are called to update the database. 3492 * 3493 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3494 * @param x the new column value 3495 * @param length the length of the stream 3496 * @exception SQLException if the columnLabel is not valid; 3497 * if a database access error occurs; 3498 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3499 * or this method is called on a closed result set 3500 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3501 * this method 3502 * @since 1.6 3503 */ updateBinaryStream(String columnLabel, java.io.InputStream x, long length)3504 void updateBinaryStream(String columnLabel, 3505 java.io.InputStream x, 3506 long length) throws SQLException; 3507 3508 /** 3509 * Updates the designated column with a character stream value, which will have 3510 * the specified number of bytes. 3511 * <p> 3512 * The updater methods are used to update column values in the 3513 * current row or the insert row. The updater methods do not 3514 * update the underlying database; instead the <code>updateRow</code> or 3515 * <code>insertRow</code> methods are called to update the database. 3516 * 3517 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3518 * @param reader the <code>java.io.Reader</code> object containing 3519 * the new column value 3520 * @param length the length of the stream 3521 * @exception SQLException if the columnLabel is not valid; 3522 * if a database access error occurs; 3523 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3524 * or this method is called on a closed result set 3525 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3526 * this method 3527 * @since 1.6 3528 */ updateCharacterStream(String columnLabel, java.io.Reader reader, long length)3529 void updateCharacterStream(String columnLabel, 3530 java.io.Reader reader, 3531 long length) throws SQLException; 3532 /** 3533 * Updates the designated column using the given input stream, which 3534 * will have the specified number of bytes. 3535 * 3536 * <p> 3537 * The updater methods are used to update column values in the 3538 * current row or the insert row. The updater methods do not 3539 * update the underlying database; instead the <code>updateRow</code> or 3540 * <code>insertRow</code> methods are called to update the database. 3541 * 3542 * @param columnIndex the first column is 1, the second is 2, ... 3543 * @param inputStream An object that contains the data to set the parameter 3544 * value to. 3545 * @param length the number of bytes in the parameter data. 3546 * @exception SQLException if the columnIndex is not valid; 3547 * if a database access error occurs; 3548 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3549 * or this method is called on a closed result set 3550 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3551 * this method 3552 * @since 1.6 3553 */ updateBlob(int columnIndex, InputStream inputStream, long length)3554 void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException; 3555 3556 /** 3557 * Updates the designated column using the given input stream, which 3558 * will have the specified number of bytes. 3559 * 3560 * <p> 3561 * The updater methods are used to update column values in the 3562 * current row or the insert row. The updater methods do not 3563 * update the underlying database; instead the <code>updateRow</code> or 3564 * <code>insertRow</code> methods are called to update the database. 3565 * 3566 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3567 * @param inputStream An object that contains the data to set the parameter 3568 * value to. 3569 * @param length the number of bytes in the parameter data. 3570 * @exception SQLException if the columnLabel is not valid; 3571 * if a database access error occurs; 3572 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3573 * or this method is called on a closed result set 3574 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3575 * this method 3576 * @since 1.6 3577 */ updateBlob(String columnLabel, InputStream inputStream, long length)3578 void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException; 3579 3580 /** 3581 * Updates the designated column using the given <code>Reader</code> 3582 * object, which is the given number of characters long. 3583 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> 3584 * parameter, it may be more practical to send it via a 3585 * <code>java.io.Reader</code> object. The JDBC driver will 3586 * do any necessary conversion from UNICODE to the database char format. 3587 * 3588 * <p> 3589 * The updater methods are used to update column values in the 3590 * current row or the insert row. The updater methods do not 3591 * update the underlying database; instead the <code>updateRow</code> or 3592 * <code>insertRow</code> methods are called to update the database. 3593 * 3594 * @param columnIndex the first column is 1, the second is 2, ... 3595 * @param reader An object that contains the data to set the parameter value to. 3596 * @param length the number of characters in the parameter data. 3597 * @exception SQLException if the columnIndex is not valid; 3598 * if a database access error occurs; 3599 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3600 * or this method is called on a closed result set 3601 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3602 * this method 3603 * @since 1.6 3604 */ updateClob(int columnIndex, Reader reader, long length)3605 void updateClob(int columnIndex, Reader reader, long length) throws SQLException; 3606 3607 /** 3608 * Updates the designated column using the given <code>Reader</code> 3609 * object, which is the given number of characters long. 3610 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> 3611 * parameter, it may be more practical to send it via a 3612 * <code>java.io.Reader</code> object. The JDBC driver will 3613 * do any necessary conversion from UNICODE to the database char format. 3614 * 3615 * <p> 3616 * The updater methods are used to update column values in the 3617 * current row or the insert row. The updater methods do not 3618 * update the underlying database; instead the <code>updateRow</code> or 3619 * <code>insertRow</code> methods are called to update the database. 3620 * 3621 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3622 * @param reader An object that contains the data to set the parameter value to. 3623 * @param length the number of characters in the parameter data. 3624 * @exception SQLException if the columnLabel is not valid; 3625 * if a database access error occurs; 3626 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3627 * or this method is called on a closed result set 3628 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3629 * this method 3630 * @since 1.6 3631 */ updateClob(String columnLabel, Reader reader, long length)3632 void updateClob(String columnLabel, Reader reader, long length) throws SQLException; 3633 /** 3634 * Updates the designated column using the given <code>Reader</code> 3635 * object, which is the given number of characters long. 3636 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> 3637 * parameter, it may be more practical to send it via a 3638 * <code>java.io.Reader</code> object. The JDBC driver will 3639 * do any necessary conversion from UNICODE to the database char format. 3640 * 3641 * <p> 3642 * The updater methods are used to update column values in the 3643 * current row or the insert row. The updater methods do not 3644 * update the underlying database; instead the <code>updateRow</code> or 3645 * <code>insertRow</code> methods are called to update the database. 3646 * 3647 * @param columnIndex the first column is 1, the second 2, ... 3648 * @param reader An object that contains the data to set the parameter value to. 3649 * @param length the number of characters in the parameter data. 3650 * @throws SQLException if the columnIndex is not valid; 3651 * if the driver does not support national 3652 * character sets; if the driver can detect that a data conversion 3653 * error could occur; this method is called on a closed result set, 3654 * if a database access error occurs or 3655 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3656 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3657 * this method 3658 * @since 1.6 3659 */ updateNClob(int columnIndex, Reader reader, long length)3660 void updateNClob(int columnIndex, Reader reader, long length) throws SQLException; 3661 3662 /** 3663 * Updates the designated column using the given <code>Reader</code> 3664 * object, which is the given number of characters long. 3665 * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> 3666 * parameter, it may be more practical to send it via a 3667 * <code>java.io.Reader</code> object. The JDBC driver will 3668 * do any necessary conversion from UNICODE to the database char format. 3669 * 3670 * <p> 3671 * The updater methods are used to update column values in the 3672 * current row or the insert row. The updater methods do not 3673 * update the underlying database; instead the <code>updateRow</code> or 3674 * <code>insertRow</code> methods are called to update the database. 3675 * 3676 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3677 * @param reader An object that contains the data to set the parameter value to. 3678 * @param length the number of characters in the parameter data. 3679 * @throws SQLException if the columnLabel is not valid; 3680 * if the driver does not support national 3681 * character sets; if the driver can detect that a data conversion 3682 * error could occur; this method is called on a closed result set; 3683 * if a database access error occurs or 3684 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3685 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3686 * this method 3687 * @since 1.6 3688 */ updateNClob(String columnLabel, Reader reader, long length)3689 void updateNClob(String columnLabel, Reader reader, long length) throws SQLException; 3690 3691 //--- 3692 3693 /** 3694 * Updates the designated column with a character stream value. 3695 * The data will be read from the stream 3696 * as needed until end-of-stream is reached. The 3697 * driver does the necessary conversion from Java character format to 3698 * the national character set in the database. 3699 * It is intended for use when 3700 * updating <code>NCHAR</code>,<code>NVARCHAR</code> 3701 * and <code>LONGNVARCHAR</code> columns. 3702 * <p> 3703 * The updater methods are used to update column values in the 3704 * current row or the insert row. The updater methods do not 3705 * update the underlying database; instead the <code>updateRow</code> or 3706 * <code>insertRow</code> methods are called to update the database. 3707 * 3708 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3709 * it might be more efficient to use a version of 3710 * <code>updateNCharacterStream</code> which takes a length parameter. 3711 * 3712 * @param columnIndex the first column is 1, the second is 2, ... 3713 * @param x the new column value 3714 * @exception SQLException if the columnIndex is not valid; 3715 * if a database access error occurs; 3716 * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set 3717 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3718 * this method 3719 * @since 1.6 3720 */ updateNCharacterStream(int columnIndex, java.io.Reader x)3721 void updateNCharacterStream(int columnIndex, 3722 java.io.Reader x) throws SQLException; 3723 3724 /** 3725 * Updates the designated column with a character stream value. 3726 * The data will be read from the stream 3727 * as needed until end-of-stream is reached. The 3728 * driver does the necessary conversion from Java character format to 3729 * the national character set in the database. 3730 * It is intended for use when 3731 * updating <code>NCHAR</code>,<code>NVARCHAR</code> 3732 * and <code>LONGNVARCHAR</code> columns. 3733 * <p> 3734 * The updater methods are used to update column values in the 3735 * current row or the insert row. The updater methods do not 3736 * update the underlying database; instead the <code>updateRow</code> or 3737 * <code>insertRow</code> methods are called to update the database. 3738 * 3739 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3740 * it might be more efficient to use a version of 3741 * <code>updateNCharacterStream</code> which takes a length parameter. 3742 * 3743 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3744 * @param reader the <code>java.io.Reader</code> object containing 3745 * the new column value 3746 * @exception SQLException if the columnLabel is not valid; 3747 * if a database access error occurs; 3748 * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set 3749 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3750 * this method 3751 * @since 1.6 3752 */ updateNCharacterStream(String columnLabel, java.io.Reader reader)3753 void updateNCharacterStream(String columnLabel, 3754 java.io.Reader reader) throws SQLException; 3755 /** 3756 * Updates the designated column with an ascii stream value. 3757 * The data will be read from the stream 3758 * as needed until end-of-stream is reached. 3759 * <p> 3760 * The updater methods are used to update column values in the 3761 * current row or the insert row. The updater methods do not 3762 * update the underlying database; instead the <code>updateRow</code> or 3763 * <code>insertRow</code> methods are called to update the database. 3764 * 3765 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3766 * it might be more efficient to use a version of 3767 * <code>updateAsciiStream</code> which takes a length parameter. 3768 * 3769 * @param columnIndex the first column is 1, the second is 2, ... 3770 * @param x the new column value 3771 * @exception SQLException if the columnIndex is not valid; 3772 * if a database access error occurs; 3773 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3774 * or this method is called on a closed result set 3775 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3776 * this method 3777 * @since 1.6 3778 */ updateAsciiStream(int columnIndex, java.io.InputStream x)3779 void updateAsciiStream(int columnIndex, 3780 java.io.InputStream x) throws SQLException; 3781 3782 /** 3783 * Updates the designated column with a binary stream value. 3784 * The data will be read from the stream 3785 * as needed until end-of-stream is reached. 3786 * <p> 3787 * The updater methods are used to update column values in the 3788 * current row or the insert row. The updater methods do not 3789 * update the underlying database; instead the <code>updateRow</code> or 3790 * <code>insertRow</code> methods are called to update the database. 3791 * 3792 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3793 * it might be more efficient to use a version of 3794 * <code>updateBinaryStream</code> which takes a length parameter. 3795 * 3796 * @param columnIndex the first column is 1, the second is 2, ... 3797 * @param x the new column value 3798 * @exception SQLException if the columnIndex is not valid; 3799 * if a database access error occurs; 3800 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3801 * or this method is called on a closed result set 3802 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3803 * this method 3804 * @since 1.6 3805 */ updateBinaryStream(int columnIndex, java.io.InputStream x)3806 void updateBinaryStream(int columnIndex, 3807 java.io.InputStream x) throws SQLException; 3808 3809 /** 3810 * Updates the designated column with a character stream value. 3811 * The data will be read from the stream 3812 * as needed until end-of-stream is reached. 3813 * <p> 3814 * The updater methods are used to update column values in the 3815 * current row or the insert row. The updater methods do not 3816 * update the underlying database; instead the <code>updateRow</code> or 3817 * <code>insertRow</code> methods are called to update the database. 3818 * 3819 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3820 * it might be more efficient to use a version of 3821 * <code>updateCharacterStream</code> which takes a length parameter. 3822 * 3823 * @param columnIndex the first column is 1, the second is 2, ... 3824 * @param x the new column value 3825 * @exception SQLException if the columnIndex is not valid; 3826 * if a database access error occurs; 3827 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3828 * or this method is called on a closed result set 3829 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3830 * this method 3831 * @since 1.6 3832 */ updateCharacterStream(int columnIndex, java.io.Reader x)3833 void updateCharacterStream(int columnIndex, 3834 java.io.Reader x) throws SQLException; 3835 /** 3836 * Updates the designated column with an ascii stream value. 3837 * The data will be read from the stream 3838 * as needed until end-of-stream is reached. 3839 * <p> 3840 * The updater methods are used to update column values in the 3841 * current row or the insert row. The updater methods do not 3842 * update the underlying database; instead the <code>updateRow</code> or 3843 * <code>insertRow</code> methods are called to update the database. 3844 * 3845 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3846 * it might be more efficient to use a version of 3847 * <code>updateAsciiStream</code> which takes a length parameter. 3848 * 3849 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3850 * @param x the new column value 3851 * @exception SQLException if the columnLabel is not valid; 3852 * if a database access error occurs; 3853 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3854 * or this method is called on a closed result set 3855 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3856 * this method 3857 * @since 1.6 3858 */ updateAsciiStream(String columnLabel, java.io.InputStream x)3859 void updateAsciiStream(String columnLabel, 3860 java.io.InputStream x) throws SQLException; 3861 3862 /** 3863 * Updates the designated column with a binary stream value. 3864 * The data will be read from the stream 3865 * as needed until end-of-stream is reached. 3866 * <p> 3867 * The updater methods are used to update column values in the 3868 * current row or the insert row. The updater methods do not 3869 * update the underlying database; instead the <code>updateRow</code> or 3870 * <code>insertRow</code> methods are called to update the database. 3871 * 3872 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3873 * it might be more efficient to use a version of 3874 * <code>updateBinaryStream</code> which takes a length parameter. 3875 * 3876 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3877 * @param x the new column value 3878 * @exception SQLException if the columnLabel is not valid; 3879 * if a database access error occurs; 3880 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3881 * or this method is called on a closed result set 3882 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3883 * this method 3884 * @since 1.6 3885 */ updateBinaryStream(String columnLabel, java.io.InputStream x)3886 void updateBinaryStream(String columnLabel, 3887 java.io.InputStream x) throws SQLException; 3888 3889 /** 3890 * Updates the designated column with a character stream value. 3891 * The data will be read from the stream 3892 * as needed until end-of-stream is reached. 3893 * <p> 3894 * The updater methods are used to update column values in the 3895 * current row or the insert row. The updater methods do not 3896 * update the underlying database; instead the <code>updateRow</code> or 3897 * <code>insertRow</code> methods are called to update the database. 3898 * 3899 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3900 * it might be more efficient to use a version of 3901 * <code>updateCharacterStream</code> which takes a length parameter. 3902 * 3903 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3904 * @param reader the <code>java.io.Reader</code> object containing 3905 * the new column value 3906 * @exception SQLException if the columnLabel is not valid; if a database access error occurs; 3907 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3908 * or this method is called on a closed result set 3909 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3910 * this method 3911 * @since 1.6 3912 */ updateCharacterStream(String columnLabel, java.io.Reader reader)3913 void updateCharacterStream(String columnLabel, 3914 java.io.Reader reader) throws SQLException; 3915 /** 3916 * Updates the designated column using the given input stream. The data will be read from the stream 3917 * as needed until end-of-stream is reached. 3918 * <p> 3919 * The updater methods are used to update column values in the 3920 * current row or the insert row. The updater methods do not 3921 * update the underlying database; instead the <code>updateRow</code> or 3922 * <code>insertRow</code> methods are called to update the database. 3923 * 3924 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3925 * it might be more efficient to use a version of 3926 * <code>updateBlob</code> which takes a length parameter. 3927 * 3928 * @param columnIndex the first column is 1, the second is 2, ... 3929 * @param inputStream An object that contains the data to set the parameter 3930 * value to. 3931 * @exception SQLException if the columnIndex is not valid; if a database access error occurs; 3932 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3933 * or this method is called on a closed result set 3934 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3935 * this method 3936 * @since 1.6 3937 */ updateBlob(int columnIndex, InputStream inputStream)3938 void updateBlob(int columnIndex, InputStream inputStream) throws SQLException; 3939 3940 /** 3941 * Updates the designated column using the given input stream. The data will be read from the stream 3942 * as needed until end-of-stream is reached. 3943 * <p> 3944 * The updater methods are used to update column values in the 3945 * current row or the insert row. The updater methods do not 3946 * update the underlying database; instead the <code>updateRow</code> or 3947 * <code>insertRow</code> methods are called to update the database. 3948 * 3949 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3950 * it might be more efficient to use a version of 3951 * <code>updateBlob</code> which takes a length parameter. 3952 * 3953 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 3954 * @param inputStream An object that contains the data to set the parameter 3955 * value to. 3956 * @exception SQLException if the columnLabel is not valid; if a database access error occurs; 3957 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3958 * or this method is called on a closed result set 3959 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3960 * this method 3961 * @since 1.6 3962 */ updateBlob(String columnLabel, InputStream inputStream)3963 void updateBlob(String columnLabel, InputStream inputStream) throws SQLException; 3964 3965 /** 3966 * Updates the designated column using the given <code>Reader</code> 3967 * object. 3968 * The data will be read from the stream 3969 * as needed until end-of-stream is reached. The JDBC driver will 3970 * do any necessary conversion from UNICODE to the database char format. 3971 * 3972 * <p> 3973 * The updater methods are used to update column values in the 3974 * current row or the insert row. The updater methods do not 3975 * update the underlying database; instead the <code>updateRow</code> or 3976 * <code>insertRow</code> methods are called to update the database. 3977 * 3978 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 3979 * it might be more efficient to use a version of 3980 * <code>updateClob</code> which takes a length parameter. 3981 * 3982 * @param columnIndex the first column is 1, the second is 2, ... 3983 * @param reader An object that contains the data to set the parameter value to. 3984 * @exception SQLException if the columnIndex is not valid; 3985 * if a database access error occurs; 3986 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 3987 * or this method is called on a closed result set 3988 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 3989 * this method 3990 * @since 1.6 3991 */ updateClob(int columnIndex, Reader reader)3992 void updateClob(int columnIndex, Reader reader) throws SQLException; 3993 3994 /** 3995 * Updates the designated column using the given <code>Reader</code> 3996 * object. 3997 * The data will be read from the stream 3998 * as needed until end-of-stream is reached. The JDBC driver will 3999 * do any necessary conversion from UNICODE to the database char format. 4000 * 4001 * <p> 4002 * The updater methods are used to update column values in the 4003 * current row or the insert row. The updater methods do not 4004 * update the underlying database; instead the <code>updateRow</code> or 4005 * <code>insertRow</code> methods are called to update the database. 4006 * 4007 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 4008 * it might be more efficient to use a version of 4009 * <code>updateClob</code> which takes a length parameter. 4010 * 4011 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 4012 * @param reader An object that contains the data to set the parameter value to. 4013 * @exception SQLException if the columnLabel is not valid; if a database access error occurs; 4014 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 4015 * or this method is called on a closed result set 4016 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 4017 * this method 4018 * @since 1.6 4019 */ updateClob(String columnLabel, Reader reader)4020 void updateClob(String columnLabel, Reader reader) throws SQLException; 4021 /** 4022 * Updates the designated column using the given <code>Reader</code> 4023 * 4024 * The data will be read from the stream 4025 * as needed until end-of-stream is reached. The JDBC driver will 4026 * do any necessary conversion from UNICODE to the database char format. 4027 * 4028 * <p> 4029 * The updater methods are used to update column values in the 4030 * current row or the insert row. The updater methods do not 4031 * update the underlying database; instead the <code>updateRow</code> or 4032 * <code>insertRow</code> methods are called to update the database. 4033 * 4034 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 4035 * it might be more efficient to use a version of 4036 * <code>updateNClob</code> which takes a length parameter. 4037 * 4038 * @param columnIndex the first column is 1, the second 2, ... 4039 * @param reader An object that contains the data to set the parameter value to. 4040 * @throws SQLException if the columnIndex is not valid; 4041 * if the driver does not support national 4042 * character sets; if the driver can detect that a data conversion 4043 * error could occur; this method is called on a closed result set, 4044 * if a database access error occurs or 4045 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 4046 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 4047 * this method 4048 * @since 1.6 4049 */ updateNClob(int columnIndex, Reader reader)4050 void updateNClob(int columnIndex, Reader reader) throws SQLException; 4051 4052 /** 4053 * Updates the designated column using the given <code>Reader</code> 4054 * object. 4055 * The data will be read from the stream 4056 * as needed until end-of-stream is reached. The JDBC driver will 4057 * do any necessary conversion from UNICODE to the database char format. 4058 * 4059 * <p> 4060 * The updater methods are used to update column values in the 4061 * current row or the insert row. The updater methods do not 4062 * update the underlying database; instead the <code>updateRow</code> or 4063 * <code>insertRow</code> methods are called to update the database. 4064 * 4065 * <P><B>Note:</B> Consult your JDBC driver documentation to determine if 4066 * it might be more efficient to use a version of 4067 * <code>updateNClob</code> which takes a length parameter. 4068 * 4069 * @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column 4070 * @param reader An object that contains the data to set the parameter value to. 4071 * @throws SQLException if the columnLabel is not valid; if the driver does not support national 4072 * character sets; if the driver can detect that a data conversion 4073 * error could occur; this method is called on a closed result set; 4074 * if a database access error occurs or 4075 * the result set concurrency is <code>CONCUR_READ_ONLY</code> 4076 * @exception SQLFeatureNotSupportedException if the JDBC driver does not support 4077 * this method 4078 * @since 1.6 4079 */ updateNClob(String columnLabel, Reader reader)4080 void updateNClob(String columnLabel, Reader reader) throws SQLException; 4081 4082 } 4083