151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/* 251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. 351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is free software; you can redistribute it and/or modify it 651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * under the terms of the GNU General Public License version 2 only, as 751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * published by the Free Software Foundation. Oracle designates this 851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * particular file as subject to the "Classpath" exception as provided 951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * by Oracle in the LICENSE file that accompanied this code. 1051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * This code is distributed in the hope that it will be useful, but WITHOUT 1251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * version 2 for more details (a copy is included in the LICENSE file that 1551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * accompanied this code). 1651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 1751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * You should have received a copy of the GNU General Public License version 1851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2 along with this work; if not, write to the Free Software Foundation, 1951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 2151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * or visit www.oracle.com if you need additional information or have any 2351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * questions. 2451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 2551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipackage java.sql; 2751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 2851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski/** 2951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * An object that can be used to get information about the types 3051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * and properties of the columns in a <code>ResultSet</code> object. 3151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The following code fragment creates the <code>ResultSet</code> object rs, 3251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * creates the <code>ResultSetMetaData</code> object rsmd, and uses rsmd 3351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * to find out how many columns rs has and whether the first column in rs 3451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * can be used in a <code>WHERE</code> clause. 3551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <PRE> 3651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 3751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2"); 3851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * ResultSetMetaData rsmd = rs.getMetaData(); 3951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * int numberOfColumns = rsmd.getColumnCount(); 4051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * boolean b = rsmd.isSearchable(1); 4151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 4251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * </PRE> 4351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 4451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 4551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebskipublic interface ResultSetMetaData extends Wrapper { 4651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 4751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 4851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Returns the number of columns in this <code>ResultSet</code> object. 4951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 5051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the number of columns 5151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 5251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 5351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int getColumnCount() throws SQLException; 5451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 5551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 5651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether the designated column is automatically numbered. 5751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 5851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 5951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 6051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 6151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 6251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isAutoIncrement(int column) throws SQLException; 6351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 6451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 6551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether a column's case matters. 6651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 6751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 6851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 6951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 7051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 7151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isCaseSensitive(int column) throws SQLException; 7251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 7351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 7451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether the designated column can be used in a where clause. 7551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 7651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 7751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 7851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 7951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 8051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isSearchable(int column) throws SQLException; 8151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 8251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 8351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether the designated column is a cash value. 8451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 8551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 8651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 8751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 8851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 8951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isCurrency(int column) throws SQLException; 9051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 9151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 9251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates the nullability of values in the designated column. 9351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 9451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 9551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the nullability status of the given column; one of <code>columnNoNulls</code>, 9651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <code>columnNullable</code> or <code>columnNullableUnknown</code> 9751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 9851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 9951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int isNullable(int column) throws SQLException; 10051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 10151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 10251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The constant indicating that a 10351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * column does not allow <code>NULL</code> values. 10451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 10551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int columnNoNulls = 0; 10651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 10751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 10851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The constant indicating that a 10951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * column allows <code>NULL</code> values. 11051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 11151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int columnNullable = 1; 11251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 11351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 11451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * The constant indicating that the 11551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * nullability of a column's values is unknown. 11651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 11751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int columnNullableUnknown = 2; 11851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 11951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 12051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether values in the designated column are signed numbers. 12151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 12251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 12351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 12451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 12551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 12651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isSigned(int column) throws SQLException; 12751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 12851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 12951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates the designated column's normal maximum width in characters. 13051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 13151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 13251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the normal maximum number of characters allowed as the width 13351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * of the designated column 13451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 13551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 13651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int getColumnDisplaySize(int column) throws SQLException; 13751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 13851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 13951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Gets the designated column's suggested title for use in printouts and 14051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * displays. The suggested title is usually specified by the SQL <code>AS</code> 14151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * clause. If a SQL <code>AS</code> is not specified, the value returned from 14251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <code>getColumnLabel</code> will be the same as the value returned by the 14351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <code>getColumnName</code> method. 14451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 14551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 14651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the suggested column title 14751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 14851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 14951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getColumnLabel(int column) throws SQLException; 15051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 15151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 15251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Get the designated column's name. 15351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 15451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 15551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return column name 15651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 15751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 15851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getColumnName(int column) throws SQLException; 15951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 16051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 16151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Get the designated column's table's schema. 16251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 16351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 16451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return schema name or "" if not applicable 16551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 16651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 16751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getSchemaName(int column) throws SQLException; 16851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 16951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 17051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Get the designated column's specified column size. 17151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * For numeric data, this is the maximum precision. For character data, this is the length in characters. 17251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * For datetime datatypes, this is the length in characters of the String representation (assuming the 17351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype, 17451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * this is the length in bytes. 0 is returned for data types where the 17551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * column size is not applicable. 17651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 17751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 17851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return precision 17951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 18051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 18151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int getPrecision(int column) throws SQLException; 18251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 18351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 18451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Gets the designated column's number of digits to right of the decimal point. 18551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 0 is returned for data types where the scale is not applicable. 18651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 18751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 18851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return scale 18951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 19051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 19151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int getScale(int column) throws SQLException; 19251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 19351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 19451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Gets the designated column's table name. 19551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 19651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 19751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return table name or "" if not applicable 19851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 19951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 20051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getTableName(int column) throws SQLException; 20151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 20251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 20351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Gets the designated column's table's catalog name. 20451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 20551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 20651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the name of the catalog for the table in which the given column 20751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * appears or "" if not applicable 20851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 20951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 21051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getCatalogName(int column) throws SQLException; 21151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 21251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 21351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Retrieves the designated column's SQL type. 21451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 21551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 21651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return SQL type from java.sql.Types 21751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 21851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @see Types 21951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 22051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski int getColumnType(int column) throws SQLException; 22151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 22251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 22351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Retrieves the designated column's database-specific type name. 22451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 22551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 22651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return type name used by the database. If the column type is 22751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * a user-defined type, then a fully-qualified type name is returned. 22851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 22951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 23051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getColumnTypeName(int column) throws SQLException; 23151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 23251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 23351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether the designated column is definitely not writable. 23451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 23551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 23651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 23751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 23851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 23951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isReadOnly(int column) throws SQLException; 24051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 24151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 24251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether it is possible for a write on the designated column to succeed. 24351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 24451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 24551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 24651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 24751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 24851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isWritable(int column) throws SQLException; 24951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 25051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 25151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * Indicates whether a write on the designated column will definitely succeed. 25251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 25351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 25451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return <code>true</code> if so; <code>false</code> otherwise 25551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 25651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 25751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski boolean isDefinitelyWritable(int column) throws SQLException; 25851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 25951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski //--------------------------JDBC 2.0----------------------------------- 26051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski 26151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski /** 26251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <p>Returns the fully-qualified name of the Java class whose instances 26351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * are manufactured if the method <code>ResultSet.getObject</code> 26451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * is called to retrieve a value 26551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * from the column. <code>ResultSet.getObject</code> may return a subclass of the 26651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * class returned by this method. 26751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * 26851b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @param column the first column is 1, the second is 2, ... 26951b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @return the fully-qualified name of the class in the Java programming 27051b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * language that would be used by the method 27151b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * <code>ResultSet.getObject</code> to retrieve the value in the specified 27251b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * column. This is the class name used for custom mapping. 27351b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @exception SQLException if a database access error occurs 27451b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski * @since 1.2 27551b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski */ 27651b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski String getColumnClassName(int column) throws SQLException; 27751b1b6997fd3f980076b8081f7f1165ccc2a4008Piotr Jastrzebski} 278