Package org.apache.derby.iapi.sql
Interface ParameterValueSet
-
- All Known Implementing Classes:
GenericParameterValueSet
public interface ParameterValueSet
A ParameterValueSet is a set of parameter values that can be assembled by a JDBC driver and passed to a PreparedStatement all at once. The fact that they are all passed at once can reduce the communication overhead between client and server.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
allAreSet()
Tells whether all the parameters are set and ready for execution.boolean
checkNoDeclaredOutputParameters()
Check that there are not output parameters defined by the parameter set.void
clearParameters()
Sets all parameters to an uninitialized state.ParameterValueSet
getClone()
Clone the ParameterValueSet and its contents.DataValueDescriptor
getParameter(int position)
Returns the parameter at the given position.int
getParameterCount()
Returns the number of parameters in this set.DataValueDescriptor
getParameterForGet(int position)
Get the DataValueDescriptor for an INOUT or OUT parameter.DataValueDescriptor
getParameterForSet(int position)
Returns the parameter at the given position in order to set it.short
getParameterMode(int parameterIndex)
Return the mode of the parameter according to JDBC 3.0 ParameterMetaDataint
getPrecision(int parameterIndex)
Return the precision of the given parameter index in this pvs.DataValueDescriptor
getReturnValueForSet()
Get the value of the return parameter in order to set it.int
getScale(int parameterIndex)
Return the scale of the given parameter index in this pvs.boolean
hasReturnOutputParameter()
Is there a return output parameter in this pvs.void
initialize(DataTypeDescriptor[] types)
Initialize the parameter set by allocating DataValueDescriptor corresponding to the passed in type for each parameter.void
registerOutParameter(int parameterIndex, int sqlType, int scale)
Mark the parameter as an output parameter.void
setParameterAsObject(int parameterIndex, java.lang.Object value)
Set the value of this user defined parameter to the passed in Object.void
setParameterMode(int position, int mode)
Set the mode of the parameter, called when setting up static method calls and stored procedures.void
transferDataValues(ParameterValueSet pvstarget)
Set the parameter values of the pvstarget to equal those set in this PVS.void
validate()
Validate the parameters.
-
-
-
Method Detail
-
initialize
void initialize(DataTypeDescriptor[] types) throws StandardException
Initialize the parameter set by allocating DataValueDescriptor corresponding to the passed in type for each parameter.- Parameters:
types
- expected to match the number of parameters.- Throws:
StandardException
-
setParameterMode
void setParameterMode(int position, int mode)
Set the mode of the parameter, called when setting up static method calls and stored procedures. Otherwise the parameter type will default to an IN parameter.
-
registerOutParameter
void registerOutParameter(int parameterIndex, int sqlType, int scale) throws StandardException
Mark the parameter as an output parameter.- Parameters:
parameterIndex
- The ordinal position of a parameter to set to the given value.sqlType
- A type from java.sql.Typesscale
- the scale to use. -1 means ignore scale- Throws:
StandardException
- on error
-
clearParameters
void clearParameters()
Sets all parameters to an uninitialized state. An exception will be thrown if the caller tries to execute a PreparedStatement when one or more parameters is uninitialized (i.e. has not had setParameterValue() called on it.
-
getParameterCount
int getParameterCount()
Returns the number of parameters in this set.- Returns:
- The number of parameters in this set.
-
getParameter
DataValueDescriptor getParameter(int position) throws StandardException
Returns the parameter at the given position.- Returns:
- The parameter at the given position.
- Throws:
StandardException
- Thrown on error
-
getParameterForSet
DataValueDescriptor getParameterForSet(int position) throws StandardException
Returns the parameter at the given position in order to set it. Setting via an unknown object type must use setParameterAsObject() to ensure correct typing.- Returns:
- The parameter at the given position.
- Throws:
StandardException
- Thrown on error
-
setParameterAsObject
void setParameterAsObject(int parameterIndex, java.lang.Object value) throws StandardException
Set the value of this user defined parameter to the passed in Object.- Throws:
StandardException
- Thrown on error
-
getParameterForGet
DataValueDescriptor getParameterForGet(int position) throws StandardException
Get the DataValueDescriptor for an INOUT or OUT parameter.- Parameters:
position
- Zero based index of the parameter.- Returns:
- Parameter's value holder.
- Throws:
StandardException
- Position out of range or the parameter is not INOUT or OUT.
-
allAreSet
boolean allAreSet()
Tells whether all the parameters are set and ready for execution. OUT are not required to be set.- Returns:
- true if all parameters are set, false if at least one parameter is not set.
-
getClone
ParameterValueSet getClone()
Clone the ParameterValueSet and its contents.- Returns:
- ParameterValueSet A clone of the ParameterValueSet and its contents.
-
validate
void validate() throws StandardException
Validate the parameters. This is done for situations where we cannot validate everything in the setXXX() calls. In particular, before we do an execute() on a CallableStatement, we need to go through the parameters and make sure that all parameters are set up properly. The motivator for this is that setXXX() can be called either before or after registerOutputParamter(), we cannot be sure we have the types correct until we get to execute().- Throws:
StandardException
- if the parameters aren't valid
-
hasReturnOutputParameter
boolean hasReturnOutputParameter()
Is there a return output parameter in this pvs. A return parameter is from a CALL statement of the following syntax: ? = CALL myMethod(). Note that a return output parameter is NOT the same thing as an output parameter; it is a special type of output parameter.- Returns:
- true if it has a return parameter
-
checkNoDeclaredOutputParameters
boolean checkNoDeclaredOutputParameters()
Check that there are not output parameters defined by the parameter set. If there are unknown parameter types they are forced to input types. i.e. Derby static method calls with parameters that are array.- Returns:
- true if a declared Java Procedure INOUT or OUT parameter is in the set, false otherwise.
-
transferDataValues
void transferDataValues(ParameterValueSet pvstarget) throws StandardException
Set the parameter values of the pvstarget to equal those set in this PVS. Used to transfer saved SPS parameters to the actual prepared statement parameters once associated parameters have been established. Assumes pvstarget is the same length as this.- Parameters:
pvstarget
- ParameterValueSet which will recieve the values- Throws:
StandardException
- values not compatible
-
getParameterMode
short getParameterMode(int parameterIndex)
Return the mode of the parameter according to JDBC 3.0 ParameterMetaData- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...
-
getReturnValueForSet
DataValueDescriptor getReturnValueForSet() throws StandardException
Get the value of the return parameter in order to set it.- Throws:
StandardException
- if a database-access error occurs.
-
getScale
int getScale(int parameterIndex)
Return the scale of the given parameter index in this pvs.- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...- Returns:
- scale
-
getPrecision
int getPrecision(int parameterIndex)
Return the precision of the given parameter index in this pvs.- Parameters:
parameterIndex
- the first parameter is 1, the second is 2, ...- Returns:
- precision
-
-