net.sourceforge.jtds.jdbc

Class JtdsCallableStatement

Implemented Interfaces:
CallableStatement, PreparedStatement, java.sql.Statement

public class JtdsCallableStatement
extends JtdsPreparedStatement
implements CallableStatement

jTDS implementation of the java.sql.CallableStatement interface.

Implementation note:

  1. This class is a simple subclass of PreparedStatement and mainly adds support for setting parameters.
  2. The class supports named parameters in a similar way to the patch supplied by Tommy Sandstrom to the original jTDS code.
Version:
$Id: JtdsCallableStatement.java,v 1.23 2007/07/12 21:03:23 bheineman Exp $
Author:
Mike Hutchinson

Field Summary

protected boolean
paramWasNull
Last parameter retrieved was null.

Fields inherited from class net.sourceforge.jtds.jdbc.JtdsPreparedStatement

f, handles, paramMetaData, parameters, procName, returnKeys, sql, sqlWord

Fields inherited from class net.sourceforge.jtds.jdbc.JtdsStatement

BOOLEAN, CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, DATALINK, DEFAULT_FETCH_SIZE, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO, batchValues, closed, colMetaData, connection, currentResult, cursorName, escapeProcessing, fetchDirection, fetchSize, genKeyResultSet, maxFieldSize, maxRows, messages, openResultSets, queryTimeout, resultQueue, resultSetConcurrency, resultSetType, tds, updateCount

Constructor Summary

JtdsCallableStatement(ConnectionJDBC2 connection, String sql, int resultSetType, int concurrency)
Construct a CallableStatement object.

Method Summary

protected void
checkOpen()
Check that this statement is still open.
protected SQLException
executeMSBatch(int size, int executeSize, ArrayList counts)
Execute the SQL batch on a MS server.
protected SQLException
executeSybaseBatch(int size, int executeSize, ArrayList counts)
Execute the SQL batch on a Sybase server.
(package private) int
findParameter(String name, boolean set)
Find a parameter by name.
Array
getArray(String parameterName)
Array
getArray(int parameterIndex)
BigDecimal
getBigDecimal(String parameterName)
BigDecimal
getBigDecimal(int parameterIndex)
BigDecimal
getBigDecimal(int parameterIndex, int scale)
Blob
getBlob(String parameterName)
Blob
getBlob(int parameterIndex)
boolean
getBoolean(String parameterName)
boolean
getBoolean(int parameterIndex)
byte
getByte(String parameterName)
byte
getByte(int parameterIndex)
byte[]
getBytes(String parameterName)
byte[]
getBytes(int parameterIndex)
Clob
getClob(String parameterName)
Clob
getClob(int parameterIndex)
Date
getDate(String parameterName)
Date
getDate(String parameterName, Calendar cal)
Date
getDate(int parameterIndex)
Date
getDate(int parameterIndex, Calendar cal)
double
getDouble(String parameterName)
double
getDouble(int parameterIndex)
float
getFloat(String parameterName)
float
getFloat(int parameterIndex)
int
getInt(String parameterName)
int
getInt(int parameterIndex)
long
getLong(String parameterName)
long
getLong(int parameterIndex)
Object
getObject(String parameterName)
Object
getObject(String parameterName, Map map)
Object
getObject(int parameterIndex)
Object
getObject(int parameterIndex, Map map)
protected Object
getOutputValue(int parameterIndex)
Retrieve the value of an output parameter.
Ref
getRef(String parameterName)
Ref
getRef(int parameterIndex)
short
getShort(String parameterName)
short
getShort(int parameterIndex)
String
getString(String parameterName)
String
getString(int parameterIndex)
Time
getTime(String parameterName)
Time
getTime(String parameterName, Calendar cal)
Time
getTime(int parameterIndex)
Time
getTime(int parameterIndex, Calendar cal)
Timestamp
getTimestamp(String parameterName)
Timestamp
getTimestamp(String parameterName, Calendar cal)
Timestamp
getTimestamp(int parameterIndex)
Timestamp
getTimestamp(int parameterIndex, Calendar cal)
URL
getURL(String parameterName)
URL
getURL(int parameterIndex)
void
registerOutParameter(String parameterName, int sqlType)
void
registerOutParameter(String parameterName, int sqlType, String typeName)
void
registerOutParameter(String parameterName, int sqlType, int scale)
void
registerOutParameter(int parameterIndex, int sqlType)
void
registerOutParameter(int parameterIndex, int sqlType, String typeName)
void
registerOutParameter(int parameterIndex, int sqlType, int scale)
void
setAsciiStream(String parameterName, InputStream x, int length)
void
setBigDecimal(String parameterName, BigDecimal x)
void
setBinaryStream(String parameterName, InputStream x, int length)
void
setBoolean(String parameterName, boolean x)
void
setByte(String parameterName, byte x)
void
setBytes(String parameterName, byte[] x)
void
setCharacterStream(String parameterName, Reader reader, int length)
void
setDate(String parameterName, Date x)
void
setDate(String parameterName, Date x, Calendar cal)
void
setDouble(String parameterName, double x)
void
setFloat(String parameterName, float x)
void
setInt(String parameterName, int x)
void
setLong(String parameterName, long x)
void
setNull(String parameterName, int sqlType)
void
setNull(String parameterName, int sqlType, String typeName)
void
setObject(String parameterName, Object x)
void
setObject(String parameterName, Object x, int targetSqlType)
void
setObject(String parameterName, Object x, int targetSqlType, int scale)
void
setShort(String parameterName, short x)
void
setString(String parameterName, String x)
void
setTime(String parameterName, Time x)
void
setTime(String parameterName, Time x, Calendar cal)
void
setTimestamp(String parameterName, Timestamp x)
void
setTimestamp(String parameterName, Timestamp x, Calendar cal)
void
setURL(String parameterName, URL x)
boolean
wasNull()

Methods inherited from class net.sourceforge.jtds.jdbc.JtdsPreparedStatement

addBatch, addBatch, checkOpen, clearParameters, close, execute, execute, execute, execute, execute, executeMSBatch, executeQuery, executeQuery, executeSybaseBatch, executeUpdate, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getMetaData, getParameter, getParameterMetaData, normalizeCall, notSupported, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setColMetaData, setDate, setDate, setDouble, setFloat, setInt, setLong, setNull, setNull, setObject, setObject, setObject, setObjectBase, setParamMetaData, setParameter, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setURL, setUnicodeStream

Methods inherited from class net.sourceforge.jtds.jdbc.JtdsStatement

addBatch, addWarning, cacheResults, cancel, checkCursorException, checkOpen, clearBatch, clearWarnings, close, closeAllResultSets, closeCurrentResultSet, execute, execute, execute, execute, executeBatch, executeImpl, executeMSBatch, executeQuery, executeSQL, executeSQLQuery, executeSybaseBatch, executeUpdate, executeUpdate, executeUpdate, executeUpdate, finalize, getConnection, getDefaultFetchSize, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMessages, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getTds, getUpdateCount, getWarnings, initialize, notImplemented, processResults, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout, useCursor

Field Details

paramWasNull

protected boolean paramWasNull
Last parameter retrieved was null.

Constructor Details

JtdsCallableStatement

(package private)  JtdsCallableStatement(ConnectionJDBC2 connection,
                                         String sql,
                                         int resultSetType,
                                         int concurrency)
            throws SQLException
Construct a CallableStatement object.
Parameters:
connection - The connection owning this statement.
sql - The SQL statement specifying the procedure to call.
resultSetType - The result set type eg FORWARD_ONLY.
concurrency - The result set concurrency eg READ_ONLY.

Method Details

checkOpen

protected void checkOpen()
            throws SQLException
Check that this statement is still open.
Overrides:
checkOpen in interface JtdsPreparedStatement

executeMSBatch

protected SQLException executeMSBatch(int size,
                                      int executeSize,
                                      ArrayList counts)
            throws SQLException
Execute the SQL batch on a MS server.
Overrides:
executeMSBatch in interface JtdsPreparedStatement
Parameters:
size - the total size of the batch.
executeSize - the maximum number of statements to send in one request.
counts - the returned update counts.
Returns:
Chained exceptions linked to a SQLException.

executeSybaseBatch

protected SQLException executeSybaseBatch(int size,
                                          int executeSize,
                                          ArrayList counts)
            throws SQLException
Execute the SQL batch on a Sybase server.

For the rare case of CallableStatement batches each statement is executed individually. This ensures that problems with the server reading into the middle of a statement are avoided. See bug report [1374518] for more details.

Overrides:
executeSybaseBatch in interface JtdsPreparedStatement
Parameters:
size - the total size of the batch
executeSize - the maximum number of statements to send in one request (ignored for this version of the method as only one statement will be sent at a time)
counts - the returned update counts
Returns:
chained exceptions linked to a SQLException

findParameter

(package private)  int findParameter(String name,
                                     boolean set)
            throws SQLException
Find a parameter by name.
Parameters:
name - The name of the parameter to locate.
set - True if function is called from a set / register method.
Returns:
The parameter index as an int.

getArray

public Array getArray(String parameterName)
            throws SQLException

getArray

public Array getArray(int parameterIndex)
            throws SQLException

getBigDecimal

public BigDecimal getBigDecimal(String parameterName)
            throws SQLException

getBigDecimal

public BigDecimal getBigDecimal(int parameterIndex)
            throws SQLException

getBigDecimal

public BigDecimal getBigDecimal(int parameterIndex,
                                int scale)
            throws SQLException

getBlob

public Blob getBlob(String parameterName)
            throws SQLException

getBlob

public Blob getBlob(int parameterIndex)
            throws SQLException

getBoolean

public boolean getBoolean(String parameterName)
            throws SQLException

getBoolean

public boolean getBoolean(int parameterIndex)
            throws SQLException

getByte

public byte getByte(String parameterName)
            throws SQLException

getByte

public byte getByte(int parameterIndex)
            throws SQLException

getBytes

public byte[] getBytes(String parameterName)
            throws SQLException

getBytes

public byte[] getBytes(int parameterIndex)
            throws SQLException

getClob

public Clob getClob(String parameterName)
            throws SQLException

getClob

public Clob getClob(int parameterIndex)
            throws SQLException

getDate

public Date getDate(String parameterName)
            throws SQLException

getDate

public Date getDate(String parameterName,
                    Calendar cal)
            throws SQLException

getDate

public Date getDate(int parameterIndex)
            throws SQLException

getDate

public Date getDate(int parameterIndex,
                    Calendar cal)
            throws SQLException

getDouble

public double getDouble(String parameterName)
            throws SQLException

getDouble

public double getDouble(int parameterIndex)
            throws SQLException

getFloat

public float getFloat(String parameterName)
            throws SQLException

getFloat

public float getFloat(int parameterIndex)
            throws SQLException

getInt

public int getInt(String parameterName)
            throws SQLException

getInt

public int getInt(int parameterIndex)
            throws SQLException

getLong

public long getLong(String parameterName)
            throws SQLException

getLong

public long getLong(int parameterIndex)
            throws SQLException

getObject

public Object getObject(String parameterName)
            throws SQLException

getObject

public Object getObject(String parameterName,
                        Map map)
            throws SQLException

getObject

public Object getObject(int parameterIndex)
            throws SQLException

getObject

public Object getObject(int parameterIndex,
                        Map map)
            throws SQLException

getOutputValue

protected Object getOutputValue(int parameterIndex)
            throws SQLException
Retrieve the value of an output parameter.
Parameters:
parameterIndex - the ordinal position of the parameter
Returns:
the parameter value as an Object

getRef

public Ref getRef(String parameterName)
            throws SQLException

getRef

public Ref getRef(int parameterIndex)
            throws SQLException

getShort

public short getShort(String parameterName)
            throws SQLException

getShort

public short getShort(int parameterIndex)
            throws SQLException

getString

public String getString(String parameterName)
            throws SQLException

getString

public String getString(int parameterIndex)
            throws SQLException

getTime

public Time getTime(String parameterName)
            throws SQLException

getTime

public Time getTime(String parameterName,
                    Calendar cal)
            throws SQLException

getTime

public Time getTime(int parameterIndex)
            throws SQLException

getTime

public Time getTime(int parameterIndex,
                    Calendar cal)
            throws SQLException

getTimestamp

public Timestamp getTimestamp(String parameterName)
            throws SQLException

getTimestamp

public Timestamp getTimestamp(String parameterName,
                              Calendar cal)
            throws SQLException

getTimestamp

public Timestamp getTimestamp(int parameterIndex)
            throws SQLException

getTimestamp

public Timestamp getTimestamp(int parameterIndex,
                              Calendar cal)
            throws SQLException

getURL

public URL getURL(String parameterName)
            throws SQLException

getURL

public URL getURL(int parameterIndex)
            throws SQLException

registerOutParameter

public void registerOutParameter(String parameterName,
                                 int sqlType)
            throws SQLException

registerOutParameter

public void registerOutParameter(String parameterName,
                                 int sqlType,
                                 String typeName)
            throws SQLException

registerOutParameter

public void registerOutParameter(String parameterName,
                                 int sqlType,
                                 int scale)
            throws SQLException

registerOutParameter

public void registerOutParameter(int parameterIndex,
                                 int sqlType)
            throws SQLException

registerOutParameter

public void registerOutParameter(int parameterIndex,
                                 int sqlType,
                                 String typeName)
            throws SQLException

registerOutParameter

public void registerOutParameter(int parameterIndex,
                                 int sqlType,
                                 int scale)
            throws SQLException

setAsciiStream

public void setAsciiStream(String parameterName,
                           InputStream x,
                           int length)
            throws SQLException

setBigDecimal

public void setBigDecimal(String parameterName,
                          BigDecimal x)
            throws SQLException

setBinaryStream

public void setBinaryStream(String parameterName,
                            InputStream x,
                            int length)
            throws SQLException

setBoolean

public void setBoolean(String parameterName,
                       boolean x)
            throws SQLException

setByte

public void setByte(String parameterName,
                    byte x)
            throws SQLException

setBytes

public void setBytes(String parameterName,
                     byte[] x)
            throws SQLException

setCharacterStream

public void setCharacterStream(String parameterName,
                               Reader reader,
                               int length)
            throws SQLException

setDate

public void setDate(String parameterName,
                    Date x)
            throws SQLException

setDate

public void setDate(String parameterName,
                    Date x,
                    Calendar cal)
            throws SQLException

setDouble

public void setDouble(String parameterName,
                      double x)
            throws SQLException

setFloat

public void setFloat(String parameterName,
                     float x)
            throws SQLException

setInt

public void setInt(String parameterName,
                   int x)
            throws SQLException

setLong

public void setLong(String parameterName,
                    long x)
            throws SQLException

setNull

public void setNull(String parameterName,
                    int sqlType)
            throws SQLException

setNull

public void setNull(String parameterName,
                    int sqlType,
                    String typeName)
            throws SQLException

setObject

public void setObject(String parameterName,
                      Object x)
            throws SQLException

setObject

public void setObject(String parameterName,
                      Object x,
                      int targetSqlType)
            throws SQLException

setObject

public void setObject(String parameterName,
                      Object x,
                      int targetSqlType,
                      int scale)
            throws SQLException

setShort

public void setShort(String parameterName,
                     short x)
            throws SQLException

setString

public void setString(String parameterName,
                      String x)
            throws SQLException

setTime

public void setTime(String parameterName,
                    Time x)
            throws SQLException

setTime

public void setTime(String parameterName,
                    Time x,
                    Calendar cal)
            throws SQLException

setTimestamp

public void setTimestamp(String parameterName,
                         Timestamp x)
            throws SQLException

setTimestamp

public void setTimestamp(String parameterName,
                         Timestamp x,
                         Calendar cal)
            throws SQLException

setURL

public void setURL(String parameterName,
                   URL x)
            throws SQLException

wasNull

public boolean wasNull()
            throws SQLException

Generated on June 12 2008