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

Version:
  $Revision: 5609 $
Author:
  brian zimmer, last modified by $Author: pjenvey $

Constructor Summary
`Procedure(PyCursor cursor, PyObject name)` Constructor Procedure

Method Summary
`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