1.50.39

interbase.interclient
Class ResultSetMetaData

java.lang.Object
  |
  +--interbase.interclient.ResultSetMetaData

public final class ResultSetMetaData
extends Object
implements ResultSetMetaData

Describes column information for a result set.

A ResultSetMetaData object can be used to find out about the types and properties of the columns in a ResultSet.

Since:
JDBC 1, with extended behavior in JDBC 2

Field Summary
static int columnNoNulls
          Does not allow NULL values.
static int columnNullable
          Allows NULL values.
static int columnNullableUnknown
          Nullability unknown.
 
Method Summary
 String getCatalogName(int column)
          What's a column's table's catalog name.
 String getColumnClassName(int column)
          Return the fully qualified name of the Java class whose instances are manufactured if ResultSet.getObject() is called to retrieve a value from the column.
 int getColumnCount()
          What's the number of columns in the ResultSet.
 int getColumnDisplaySize(int column)
          What's the column's normal max width in chars.
 String getColumnLabel(int column)
          What's the suggested column title for use in printouts and displays.
 String getColumnName(int column)
          What's a column's name.
 int getColumnType(int column)
          What's a column's SQL type.
 String getColumnTypeName(int column)
          What's a column's data source specific type name.
 int getPrecision(int column)
          What's a column's number of decimal digits.
 int getScale(int column)
          What's a column's number of digits to right of the decimal point.
 String getSchemaName(int column)
          What's a column's table's schema.
 String getTableName(int column)
          What's a column's table name.
 boolean isAutoIncrement(int column)
          Is the column automatically numbered, thus read-only.
 boolean isCaseSensitive(int column)
          Does a column's case matters.
 boolean isCurrency(int column)
          Is the column a cash value.
 boolean isDefinitelyWritable(int column)
          Will a write on the column definitely succeed.
 int isNullable(int column)
          Can you can put a NULL in this column.
 boolean isReadOnly(int column)
          Is a column definitely not writable.
 boolean isSearchable(int column)
          Can a column be used in a where clause.
 boolean isSigned(int column)
          Is the column a signed number.
 boolean isWritable(int column)
          Is it possible for a write on the column to succeed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

columnNoNulls

public static final int columnNoNulls
Does not allow NULL values.
Since:
JDBC 1

columnNullable

public static final int columnNullable
Allows NULL values.
Since:
JDBC 1

columnNullableUnknown

public static final int columnNullableUnknown
Nullability unknown.
Since:
JDBC 1
Method Detail

getColumnCount

public int getColumnCount()
                   throws SQLException
What's the number of columns in the ResultSet.
Specified by:
getColumnCount in interface ResultSetMetaData
Returns:
the number
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isAutoIncrement

public boolean isAutoIncrement(int column)
                        throws SQLException
Is the column automatically numbered, thus read-only.

InterClient note: Always returns false for InterClient. The capability does not currently exist to determine an InterBase generator field dynamically.

Specified by:
isAutoIncrement in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isCaseSensitive

public boolean isCaseSensitive(int column)
                        throws SQLException
Does a column's case matters.

InterClient note: Always returns true for InterBase. Text fields in InterBase are always case sensitive, even text blobs when using the 'containing' operator.

Specified by:
isCaseSensitive in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isSearchable

public boolean isSearchable(int column)
                     throws SQLException
Can a column be used in a where clause.

InterClient note: Always returns true for InterBase. In InterBase, even a blob field can be used in a where clause, eg. "WHERE blob-field CONTAINING foobar"

Specified by:
isSearchable in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isCurrency

public boolean isCurrency(int column)
                   throws SQLException
Is the column a cash value.

InterClient note: Always returns false for InterBase. InterBase does not support a money type.

Specified by:
isCurrency in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isNullable

public int isNullable(int column)
               throws SQLException
Can you can put a NULL in this column.

InterClient note: Unlike other RDBMS vendors, InterBase can always determine column nullability dynamically, so InterClient never returns columnNullableUnknown.

Specified by:
isNullable in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
columnNoNulls, columnNullable or columnNullableUnknown
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isSigned

public boolean isSigned(int column)
                 throws SQLException
Is the column a signed number.
Specified by:
isSigned in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getColumnDisplaySize

public int getColumnDisplaySize(int column)
                         throws SQLException
What's the column's normal max width in chars.
Specified by:
getColumnDisplaySize in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
max width
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getColumnLabel

public String getColumnLabel(int column)
                      throws SQLException
What's the suggested column title for use in printouts and displays.
Specified by:
getColumnLabel in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getColumnName

public String getColumnName(int column)
                     throws SQLException
What's a column's name.
Specified by:
getColumnName in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
column name
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getSchemaName

public String getSchemaName(int column)
                     throws SQLException
What's a column's table's schema.

InterClient note: Always returns "". InterBase does not support schemas.

Specified by:
getSchemaName in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
schema name or "" if not applicable
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1, not supported

getPrecision

public int getPrecision(int column)
                 throws SQLException
What's a column's number of decimal digits.
Specified by:
getPrecision in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
precision
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getScale

public int getScale(int column)
             throws SQLException
What's a column's number of digits to right of the decimal point.
Specified by:
getScale in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
scale
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getTableName

public String getTableName(int column)
                    throws SQLException
What's a column's table name.
Specified by:
getTableName in interface ResultSetMetaData
Returns:
table name or "" if not applicable
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

getCatalogName

public String getCatalogName(int column)
                      throws SQLException
What's a column's table's catalog name.

InterClient note: Always returns "". InterBase does not support catalogs.

Specified by:
getCatalogName in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
column name or "" if not applicable.
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1, not supported

getColumnType

public int getColumnType(int column)
                  throws SQLException
What's a column's SQL type.
Specified by:
getColumnType in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
SQL type from java.sql.Types
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1
See Also:
java.sql.Types

getColumnTypeName

public String getColumnTypeName(int column)
                         throws SQLException
What's a column's data source specific type name.
Specified by:
getColumnTypeName in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
type name, if a UDT then a fully qualified type name is returned
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1

isReadOnly

public boolean isReadOnly(int column)
                   throws SQLException
Is a column definitely not writable.

InterClient note: This returns true for a column which is a computed field, or is a view field, or the current user does not have the necessary SQL privileges to write to this field.

Specified by:
isReadOnly in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1, behavior subject to further functional refinements

isWritable

public boolean isWritable(int column)
                   throws SQLException
Is it possible for a write on the column to succeed.

InterClient note: This returns true for a column which is not a computed field, and is not a view field, and the current user has the necessary SQL privileges to write to this field.

Specified by:
isWritable in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1, behavior subject to further functional refinements

isDefinitelyWritable

public boolean isDefinitelyWritable(int column)
                             throws SQLException
Will a write on the column definitely succeed.

InterClient note: Always returns false. We can never guarantee this for InterBase because there may be triggers which could abort upon writing the column.

Specified by:
isDefinitelyWritable in interface ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if so
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 1, behavior subject to further functional refinements

getColumnClassName

public String getColumnClassName(int column)
                          throws SQLException
Return the fully qualified name of the Java class whose instances are manufactured if ResultSet.getObject() is called to retrieve a value from the column. ResultSet.getObject() may return a subClass of the class returned by this method.
Specified by:
getColumnClassName in interface ResultSetMetaData
Throws:
SQLException - if a database access error occurs.
Since:
JDBC 2, not supported

1.50.39

Send comments or suggestions to icsupport@interbase.com