Overview | Package | Class | Tree | Deprecated | Index | Help

3.00.12
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## interbase.interclient
Class ResultSetMetaData

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

All Implemented Interfaces:
  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.

InterClient Notes:
Here are the column names, labels, and base tables to expect from some typical result sets:

Query | Column Name | Column Label | Table Name
--- | --- | --- | ---
`select F from T` | `"F"` | `"F"` | `"T"`
`select F as A from T` | `"F"` | `"A"` | `"T"`
`select F+1 from T` | `""` | `""` | `""`
`select MAX(F) from T` | `"MAX"` | `"MAX"` | `""`

Notice that calculated result columns have no physical table name, and may or may not have an ad hoc column label or name.

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
`int` | `getArrayBaseType(int column)` Gets an array column's base SQL type from `java.sql.Types`.
`int[][]` | `getArrayDimensions(int column)` Gets an array column's dimensions and bounds.
`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()` Gets 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)` Gets 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)` Gets a column's origination 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

  Gets 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, subject to further functional refinements

### 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

  Gets the suggested column title for use in printouts and displays.

  InterClient Notes:
  See the table in the `ResultSetMetaData` class header documentation for the column labels associated with some typical SQL queries.

  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.

  InterClient Notes:
  See the table in the `ResultSetMetaData` class header documentation for the column names associated with some typical SQL queries.

  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

  Gets a column's origination table name.

  InterClient Notes:
  See the table in the `ResultSetMetaData` class header documentation for the tables names associated with some typical SQL queries.

  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

### 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

### getArrayBaseType

    public int getArrayBaseType(int column)
                         throws SQLException

  Gets an array column's base SQL type from `java.sql.Types`. The result column must be of type `java.sql.Types.ARRAY`.
  Parameters:
    `column` - the first column is 1, the second is 2, ...
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    Extension, proposed for InterClient 3.0

### getArrayDimensions

    public int[][] getArrayDimensions(int column)
                               throws SQLException

  Gets an array column's dimensions and bounds. The result column must be of type `java.sql.Types.ARRAY`.
  Parameters:
    `column` - the first column is 1, the second is 2, ...
  Returns:
    an array of arrays describing dimensions and bounds for each dimension.
  Throws:
    `SQLException` - if a database access error occurs
  Since:
    Extension, proposed for InterClient 3.0

Overview | Package | Class | Tree | Deprecated | Index | Help

3.00.12
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Send comments or suggestions to interclient@borland.com