Package 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
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `FBParameterMetaData​(RowDescriptor rowDescriptor, FBConnection connection)` | Creates a new `FBParameterMetaData` instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.