Package org.firebirdsql.jdbc
Class FBResultSetMetaData
- java.lang.Object
-
- org.firebirdsql.jdbc.AbstractFieldMetaData
-
- org.firebirdsql.jdbc.FBResultSetMetaData
-
- All Implemented Interfaces:
java.sql.ResultSetMetaData,java.sql.Wrapper,FirebirdResultSetMetaData
public class FBResultSetMetaData extends AbstractFieldMetaData implements FirebirdResultSetMetaData
An object that can be used to get information about the types and properties of the columns in aResultSetobject.- Author:
- David Jencks, Mark Rotteveel
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.firebirdsql.jdbc.AbstractFieldMetaData
AbstractFieldMetaData.ExtendedFieldInfo, AbstractFieldMetaData.FieldKey
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedFBResultSetMetaData(RowDescriptor rowDescriptor, FBConnection connection)Creates a newFBResultSetMetaDatainstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetCatalogName(int column)java.lang.StringgetColumnClassName(int column)intgetColumnCount()intgetColumnDisplaySize(int column)java.lang.StringgetColumnLabel(int column)java.lang.StringgetColumnName(int column)intgetColumnType(int column)java.lang.StringgetColumnTypeName(int column)protected java.util.Map<AbstractFieldMetaData.FieldKey,AbstractFieldMetaData.ExtendedFieldInfo>getExtendedFieldInfo(FBConnection connection)This method retrieves extended information from the system tables in a database.intgetPrecision(int column)intgetScale(int column)java.lang.StringgetSchemaName(int column)java.lang.StringgetTableAlias(int column)Gets the designated column's table alias.java.lang.StringgetTableName(int column)booleanisAutoIncrement(int column)booleanisCaseSensitive(int column)booleanisCurrency(int column)booleanisDefinitelyWritable(int column)intisNullable(int column)booleanisReadOnly(int column)booleanisSearchable(int column)booleanisSigned(int column)booleanisWritable(int column)-
Methods inherited from class org.firebirdsql.jdbc.AbstractFieldMetaData
estimateFixedPrecision, getExtFieldInfo, getFieldClassName, getFieldCount, getFieldDescriptor, getFieldType, getFieldTypeName, getPrecisionInternal, getRowDescriptor, getScaleInternal, isSignedInternal, isWrapperFor, unwrap
-
-
-
-
Constructor Detail
-
FBResultSetMetaData
protected FBResultSetMetaData(RowDescriptor rowDescriptor, FBConnection connection) throws java.sql.SQLException
Creates a newFBResultSetMetaDatainstance.- Parameters:
rowDescriptor- a row descriptorconnection- aFBConnectionvalue- Throws:
java.sql.SQLException- if an error occurs TODO Need another constructor for metadata from constructed result set, where we supply the ext field info.
-
-
Method Detail
-
getColumnCount
public int getColumnCount() throws java.sql.SQLException- Specified by:
getColumnCountin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isAutoIncrement
public boolean isAutoIncrement(int column) throws java.sql.SQLExceptionThe current implementation always returns
false.- Specified by:
isAutoIncrementin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isCaseSensitive
public boolean isCaseSensitive(int column) throws java.sql.SQLExceptionThe current implementation always returns
true.- Specified by:
isCaseSensitivein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isSearchable
public boolean isSearchable(int column) throws java.sql.SQLException- Specified by:
isSearchablein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isCurrency
public boolean isCurrency(int column) throws java.sql.SQLException- Specified by:
isCurrencyin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isNullable
public int isNullable(int column) throws java.sql.SQLException- Specified by:
isNullablein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isSigned
public boolean isSigned(int column) throws java.sql.SQLException- Specified by:
isSignedin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getColumnDisplaySize
public int getColumnDisplaySize(int column) throws java.sql.SQLException- Specified by:
getColumnDisplaySizein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getColumnLabel
public java.lang.String getColumnLabel(int column) throws java.sql.SQLException- Specified by:
getColumnLabelin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getColumnName
public java.lang.String getColumnName(int column) throws java.sql.SQLException- Specified by:
getColumnNamein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getSchemaName
public java.lang.String getSchemaName(int column) throws java.sql.SQLException- Specified by:
getSchemaNamein interfacejava.sql.ResultSetMetaData- Returns:
- Always
""as schemas are not supported. - Throws:
java.sql.SQLException
-
getPrecision
public int getPrecision(int column) throws java.sql.SQLExceptionNOTE For
NUMERICandDECIMALwe attempt to retrieve the exact precision from the metadata, if this is not possible (eg the column is dynamically defined in the query), the reported precision is the maximum precision allowed by the underlying storage data type.- Specified by:
getPrecisionin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getScale
public int getScale(int column) throws java.sql.SQLException- Specified by:
getScalein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getTableName
public java.lang.String getTableName(int column) throws java.sql.SQLException- Specified by:
getTableNamein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getTableAlias
public java.lang.String getTableAlias(int column) throws java.sql.SQLExceptionDescription copied from interface:FirebirdResultSetMetaDataGets the designated column's table alias.- Specified by:
getTableAliasin interfaceFirebirdResultSetMetaData- Parameters:
column- the first column is 1, the second is 2, ...- Returns:
- table alias or "" if not applicable
- Throws:
java.sql.SQLException- if a database access error occurs
-
getCatalogName
public java.lang.String getCatalogName(int column) throws java.sql.SQLException- Specified by:
getCatalogNamein interfacejava.sql.ResultSetMetaData- Returns:
- Always
""as catalogs are not supported - Throws:
java.sql.SQLException
-
getColumnType
public int getColumnType(int column) throws java.sql.SQLException- Specified by:
getColumnTypein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getColumnTypeName
public java.lang.String getColumnTypeName(int column) throws java.sql.SQLException- Specified by:
getColumnTypeNamein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isReadOnly
public boolean isReadOnly(int column) throws java.sql.SQLExceptionThe current implementation always returns
false, except for a DB_KEY column.- Specified by:
isReadOnlyin interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isWritable
public boolean isWritable(int column) throws java.sql.SQLExceptionThe current implementation always returns
true, except for a DB_KEY column.- Specified by:
isWritablein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
isDefinitelyWritable
public boolean isDefinitelyWritable(int column) throws java.sql.SQLException- Specified by:
isDefinitelyWritablein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getColumnClassName
public java.lang.String getColumnClassName(int column) throws java.sql.SQLException- Specified by:
getColumnClassNamein interfacejava.sql.ResultSetMetaData- Throws:
java.sql.SQLException
-
getExtendedFieldInfo
protected java.util.Map<AbstractFieldMetaData.FieldKey,AbstractFieldMetaData.ExtendedFieldInfo> getExtendedFieldInfo(FBConnection connection) throws java.sql.SQLException
Description copied from class:AbstractFieldMetaDataThis method retrieves extended information from the system tables in a database. Since this method is expensive, use it with care.- Specified by:
getExtendedFieldInfoin classAbstractFieldMetaData- Returns:
- mapping between
AbstractFieldMetaData.FieldKeyinstances andAbstractFieldMetaData.ExtendedFieldInfoinstances, or an empty Map if the metadata implementation does not support extended info. - Throws:
java.sql.SQLException- if a database error occurs while obtaining extended field information.
-
-