org.firebirdsql.jdbc

## Class FBParameterMetaData

- java.lang.Object
- - org.firebirdsql.jdbc.AbstractFieldMetaData
  - - org.firebirdsql.jdbc.FBParameterMetaData

All Implemented Interfaces:
  java.sql.ParameterMetaData, java.sql.Wrapper, FirebirdParameterMetaData

    public class FBParameterMetaData
    extends AbstractFieldMetaData
    implements FirebirdParameterMetaData

An object that can be used to get information about the types and properties for each parameter marker in a `PreparedStatement` object.

Version:
  1.0
Author:
  Nickolay Samofatov, Mark Rotteveel

### Nested Class Summary

### Nested classes/interfaces inherited from class org.firebirdsql.jdbc.AbstractFieldMetaData

`AbstractFieldMetaData.ExtendedFieldInfo, AbstractFieldMetaData.FieldKey`

### Field Summary

### Fields inherited from interface java.sql.ParameterMetaData

`parameterModeIn, parameterModeInOut, parameterModeOut, parameterModeUnknown, parameterNoNulls, parameterNullable, parameterNullableUnknown`

### Constructor Summary

Constructors
`protected` `FBParameterMetaData(RowDescriptor rowDescriptor, FBConnection connection)` Creates a new `FBParameterMetaData` instance.

### Method Summary

Methods
`protected java.util.Map<AbstractFieldMetaData.FieldKey,AbstractFieldMetaData.ExtendedFieldInfo>` `getExtendedFieldInfo(FBConnection connection)` This method retrieves extended information from the system tables in a database.
`java.lang.String` `getParameterClassName(int parameter)`
`int` `getParameterCount()`
`int` `getParameterMode(int parameter)`
`int` `getParameterType(int parameter)`
`java.lang.String` `getParameterTypeName(int parameter)`
`int` `getPrecision(int parameter)`
`int` `getScale(int parameter)`
`int` `isNullable(int parameter)`
`boolean` `isSigned(int parameter)`

### Methods inherited from class org.firebirdsql.jdbc.AbstractFieldMetaData

`estimateFixedPrecision, getExtFieldInfo, getFieldClassName, getFieldCount, getFieldDescriptor, getFieldType, getFieldTypeName, getPrecisionInternal, getRowDescriptor, getScaleInternal, isSignedInternal, isWrapperFor, unwrap`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Constructor Detail

#### FBParameterMetaData

    protected FBParameterMetaData(RowDescriptor rowDescriptor,
                       FBConnection connection)
                           throws java.sql.SQLException

Creates a new `FBParameterMetaData` instance.

Parameters:
  `rowDescriptor` - a row descriptor
  `connection` - a `FBConnection` value
Throws:
  `java.sql.SQLException` - if an error occurs

### Method Detail

#### getParameterCount

    public int getParameterCount()
                          throws java.sql.SQLException

Specified by:
  `getParameterCount` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### isNullable

    public int isNullable(int parameter)
                   throws java.sql.SQLException

Specified by:
  `isNullable` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### isSigned

    public boolean isSigned(int parameter)
                     throws java.sql.SQLException

Specified by:
  `isSigned` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getPrecision

    public int getPrecision(int parameter)
                     throws java.sql.SQLException

NOTE For `NUMERIC` and `DECIMAL` the reported precision is the maximum precision allowed by the underlying storage data type, it is not the declared precision.

Specified by:
  `getPrecision` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getScale

    public int getScale(int parameter)
                 throws java.sql.SQLException

Specified by:
  `getScale` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterType

    public int getParameterType(int parameter)
                         throws java.sql.SQLException

Specified by:
  `getParameterType` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterTypeName

    public java.lang.String getParameterTypeName(int parameter)
                                          throws java.sql.SQLException

Specified by:
  `getParameterTypeName` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterClassName

    public java.lang.String getParameterClassName(int parameter)
                                           throws java.sql.SQLException

Specified by:
  `getParameterClassName` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getParameterMode

    public int getParameterMode(int parameter)
                         throws java.sql.SQLException

Specified by:
  `getParameterMode` in interface `java.sql.ParameterMetaData`
Throws:
  `java.sql.SQLException`

#### getExtendedFieldInfo

    protected java.util.Map<AbstractFieldMetaData.FieldKey,AbstractFieldMetaData.ExtendedFieldInfo> getExtendedFieldInfo(FBConnection connection)
                                                                                                                  throws java.sql.SQLException

This method retrieves extended information from the system tables in a database. Since this method is expensive, use it with care.

`FBParameterMetaData` does not support extended field info, so it always returns an empty Map.

Specified by:
  `getExtendedFieldInfo` in class `AbstractFieldMetaData`
Returns:
  mapping between `AbstractFieldMetaData.FieldKey` instances and `AbstractFieldMetaData.ExtendedFieldInfo` instances, 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.