com.ziclix.python.sql
Class Procedure

java.lang.Object
  extended bycom.ziclix.python.sql.Procedure

public class Procedure
extends java.lang.Object

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

Version:
$Revision: 1.11 $
Author:
brian zimmer, last modified by $Author: fwierzbicki $

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.
 java.sql.CallableStatement prepareCall()
          Prepares the statement and registers the OUT/INOUT parameters (if any).
 java.sql.CallableStatement prepareCall(PyObject rsType, PyObject rsConcur)
          Prepares the statement and registers the OUT/INOUT parameters (if any).
 java.lang.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 java.sql.SQLException
Constructor Procedure

Parameters:
cursor - cursor an open cursor
name - name a string or tuple representing the name
Throws:
java.sql.SQLException
Method Detail

prepareCall

public java.sql.CallableStatement prepareCall()
                                       throws java.sql.SQLException
Prepares the statement and registers the OUT/INOUT parameters (if any).

Returns:
CallableStatement
Throws:
java.sql.SQLException

prepareCall

public java.sql.CallableStatement prepareCall(PyObject rsType,
                                              PyObject rsConcur)
                                       throws java.sql.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:
java.sql.SQLException

normalizeInput

public void normalizeInput(PyObject params,
                           PyObject bindings)
                    throws java.sql.SQLException
Prepare the binding dictionary with the correct datatypes.

Parameters:
params - a non-None list of params
bindings - a dictionary of bindings
Throws:
java.sql.SQLException

isInput

public boolean isInput(int index)
                throws java.sql.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:
java.sql.SQLException

toSql

public java.lang.String toSql()
                       throws java.sql.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:
java.sql.SQLException


Jython homepage