Procedure (Jython API documentation)
Date: 2017-06-30

com.ziclix.python.sql

## Class Procedure

- java.lang.Object
- - com.ziclix.python.sql.Procedure

-     public class Procedure
      extends Object

  This class provides the necessary functionality to call stored procedures. It handles managing the database metadata and binding the appropriate parameters.
  Author:
    brian zimmer

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Procedure(PyCursor cursor, PyObject name)` Constructor Procedure

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isInput(int index)` This method determines whether the param at the specified index is an IN or INOUT param for a stored procedure.
    `void` | `normalizeInput(PyObject params, PyObject bindings)` Prepare the binding dictionary with the correct datatypes.
    `CallableStatement` | `prepareCall()` Prepares the statement and registers the OUT/INOUT parameters (if any).
    `CallableStatement` | `prepareCall(PyObject rsType, PyObject rsConcur)` Prepares the statement and registers the OUT/INOUT parameters (if any).
    `String` | `toSql()` Returns the call in the syntax: {?

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

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

- - ### Constructor Detail

    - #### Procedure

          public Procedure(PyCursor cursor,
                           PyObject name)
                    throws SQLException

      Constructor Procedure
      Parameters:
        `cursor` - cursor an open cursor
        `name` - name a string or tuple representing the name
      Throws:
        `SQLException`

  - ### Method Detail

    - #### prepareCall

          public CallableStatement prepareCall()
                                        throws SQLException

      Prepares the statement and registers the OUT/INOUT parameters (if any).
      Returns:
        CallableStatement
      Throws:
        `SQLException`

    - #### prepareCall

          public CallableStatement prepareCall(PyObject rsType,
                                               PyObject rsConcur)
                                        throws SQLException

      Prepares the statement and registers the OUT/INOUT parameters (if any).
      Parameters:
        `rsType` - the value of to be created ResultSet type
        `rsConcur` - the value of the to be created ResultSet concurrency
      Returns:
        CallableStatement
      Throws:
        `SQLException`

    - #### normalizeInput

          public void normalizeInput(PyObject params,
                                     PyObject bindings)
                              throws SQLException

      Prepare the binding dictionary with the correct datatypes.
      Parameters:
        `params` - a non-None list of params
        `bindings` - a dictionary of bindings
      Throws:
        `SQLException`

    - #### isInput

          public boolean isInput(int index)
                          throws SQLException

      This method determines whether the param at the specified index is an IN or INOUT param for a stored procedure. This is only configured properly AFTER a call to normalizeInput().
      Parameters:
        `index` - JDBC indexed column index (1, 2, ...)
      Returns:
        true if the column is an input, false otherwise
      Throws:
        `SQLException`

    - #### toSql

          public String toSql()
                       throws SQLException

      Returns the call in the syntax:

      {? = call (?, ?, ...)} {call (?, ?, ...)}

      As of now, all parameters variables are created and no support for named variable calling is supported.
      Returns:
        String
      Throws:
        `SQLException`

Jython homepage