net.sourceforge.jtds.jdbc
Class JtdsCallableStatement
java.lang.Object
|
+--net.sourceforge.jtds.jdbc.JtdsStatement
|
+--net.sourceforge.jtds.jdbc.JtdsPreparedStatement
|
+--net.sourceforge.jtds.jdbc.JtdsCallableStatement
- All Implemented Interfaces:
- java.sql.CallableStatement, java.sql.PreparedStatement, java.sql.Statement
- public class JtdsCallableStatement
- extends JtdsPreparedStatement
- implements java.sql.CallableStatement
jTDS implementation of the java.sql.CallableStatement interface.
Implementation note:
- This class is a simple subclass of PreparedStatement and mainly adds support for
setting parameters.
- 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.JtdsStatement |
batchValues, BOOLEAN, CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, closed, colMetaData, connection, currentResult, cursorName, DATALINK, DEFAULT_FETCH_SIZE, escapeProcessing, EXECUTE_FAILED, fetchDirection, fetchSize, genKeyResultSet, KEEP_CURRENT_RESULT, maxFieldSize, maxRows, messages, NO_GENERATED_KEYS, openResultSets, queryTimeout, resultQueue, resultSetConcurrency, resultSetType, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO, tds, updateCount |
Constructor Summary |
(package private) |
JtdsCallableStatement(ConnectionJDBC2 connection,
java.lang.String sql,
int resultSetType,
int concurrency)
Construct a CallableStatement object. |
Method Summary |
protected void |
checkOpen()
Check that this statement is still open. |
protected java.sql.SQLException |
executeMSBatch(int size,
int executeSize,
java.util.ArrayList counts)
Execute the SQL batch on a MS server. |
protected java.sql.SQLException |
executeSybaseBatch(int size,
int executeSize,
java.util.ArrayList counts)
Execute the SQL batch on a Sybase server. |
(package private) int |
findParameter(java.lang.String name,
boolean set)
Find a parameter by name. |
java.sql.Array |
getArray(int parameterIndex)
|
java.sql.Array |
getArray(java.lang.String parameterName)
|
java.math.BigDecimal |
getBigDecimal(int parameterIndex)
|
java.math.BigDecimal |
getBigDecimal(int parameterIndex,
int scale)
|
java.math.BigDecimal |
getBigDecimal(java.lang.String parameterName)
|
java.sql.Blob |
getBlob(int parameterIndex)
|
java.sql.Blob |
getBlob(java.lang.String parameterName)
|
boolean |
getBoolean(int parameterIndex)
|
boolean |
getBoolean(java.lang.String parameterName)
|
byte |
getByte(int parameterIndex)
|
byte |
getByte(java.lang.String parameterName)
|
byte[] |
getBytes(int parameterIndex)
|
byte[] |
getBytes(java.lang.String parameterName)
|
java.sql.Clob |
getClob(int parameterIndex)
|
java.sql.Clob |
getClob(java.lang.String parameterName)
|
java.sql.Date |
getDate(int parameterIndex)
|
java.sql.Date |
getDate(int parameterIndex,
java.util.Calendar cal)
|
java.sql.Date |
getDate(java.lang.String parameterName)
|
java.sql.Date |
getDate(java.lang.String parameterName,
java.util.Calendar cal)
|
double |
getDouble(int parameterIndex)
|
double |
getDouble(java.lang.String parameterName)
|
float |
getFloat(int parameterIndex)
|
float |
getFloat(java.lang.String parameterName)
|
int |
getInt(int parameterIndex)
|
int |
getInt(java.lang.String parameterName)
|
long |
getLong(int parameterIndex)
|
long |
getLong(java.lang.String parameterName)
|
java.lang.Object |
getObject(int parameterIndex)
|
java.lang.Object |
getObject(int parameterIndex,
java.util.Map map)
|
java.lang.Object |
getObject(java.lang.String parameterName)
|
java.lang.Object |
getObject(java.lang.String parameterName,
java.util.Map map)
|
protected java.lang.Object |
getOutputValue(int parameterIndex)
Retrieve the value of an output parameter. |
java.sql.Ref |
getRef(int parameterIndex)
|
java.sql.Ref |
getRef(java.lang.String parameterName)
|
short |
getShort(int parameterIndex)
|
short |
getShort(java.lang.String parameterName)
|
java.lang.String |
getString(int parameterIndex)
|
java.lang.String |
getString(java.lang.String parameterName)
|
java.sql.Time |
getTime(int parameterIndex)
|
java.sql.Time |
getTime(int parameterIndex,
java.util.Calendar cal)
|
java.sql.Time |
getTime(java.lang.String parameterName)
|
java.sql.Time |
getTime(java.lang.String parameterName,
java.util.Calendar cal)
|
java.sql.Timestamp |
getTimestamp(int parameterIndex)
|
java.sql.Timestamp |
getTimestamp(int parameterIndex,
java.util.Calendar cal)
|
java.sql.Timestamp |
getTimestamp(java.lang.String parameterName)
|
java.sql.Timestamp |
getTimestamp(java.lang.String parameterName,
java.util.Calendar cal)
|
java.net.URL |
getURL(int parameterIndex)
|
java.net.URL |
getURL(java.lang.String parameterName)
|
void |
registerOutParameter(int parameterIndex,
int sqlType)
|
void |
registerOutParameter(int parameterIndex,
int sqlType,
int scale)
|
void |
registerOutParameter(int parameterIndex,
int sqlType,
java.lang.String typeName)
|
void |
registerOutParameter(java.lang.String parameterName,
int sqlType)
|
void |
registerOutParameter(java.lang.String parameterName,
int sqlType,
int scale)
|
void |
registerOutParameter(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
|
void |
setAsciiStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
|
void |
setBigDecimal(java.lang.String parameterName,
java.math.BigDecimal x)
|
void |
setBinaryStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
|
void |
setBoolean(java.lang.String parameterName,
boolean x)
|
void |
setByte(java.lang.String parameterName,
byte x)
|
void |
setBytes(java.lang.String parameterName,
byte[] x)
|
void |
setCharacterStream(java.lang.String parameterName,
java.io.Reader reader,
int length)
|
void |
setDate(java.lang.String parameterName,
java.sql.Date x)
|
void |
setDate(java.lang.String parameterName,
java.sql.Date x,
java.util.Calendar cal)
|
void |
setDouble(java.lang.String parameterName,
double x)
|
void |
setFloat(java.lang.String parameterName,
float x)
|
void |
setInt(java.lang.String parameterName,
int x)
|
void |
setLong(java.lang.String parameterName,
long x)
|
void |
setNull(java.lang.String parameterName,
int sqlType)
|
void |
setNull(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
|
void |
setObject(java.lang.String parameterName,
java.lang.Object x)
|
void |
setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType)
|
void |
setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType,
int scale)
|
void |
setShort(java.lang.String parameterName,
short x)
|
void |
setString(java.lang.String parameterName,
java.lang.String x)
|
void |
setTime(java.lang.String parameterName,
java.sql.Time x)
|
void |
setTime(java.lang.String parameterName,
java.sql.Time x,
java.util.Calendar cal)
|
void |
setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x)
|
void |
setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x,
java.util.Calendar cal)
|
void |
setURL(java.lang.String parameterName,
java.net.URL x)
|
boolean |
wasNull()
|
Methods inherited from class net.sourceforge.jtds.jdbc.JtdsPreparedStatement |
addBatch, addBatch, clearParameters, close, execute, execute, execute, execute, execute, executeQuery, executeQuery, 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, setParameter, setParamMetaData, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL |
Methods inherited from class net.sourceforge.jtds.jdbc.JtdsStatement |
addWarning, cacheResults, cancel, checkCursorException, clearBatch, clearWarnings, closeAllResultSets, closeCurrentResultSet, executeBatch, executeImpl, executeSQL, executeSQLQuery, 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 |
Methods inherited from class java.lang.Object |
, clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait |
Methods inherited from interface java.sql.PreparedStatement |
addBatch, clearParameters, execute, executeQuery, executeUpdate, getMetaData, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNull, setNull, setObject, setObject, setObject, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream |
Methods inherited from interface java.sql.Statement |
addBatch, cancel, clearBatch, clearWarnings, close, execute, executeBatch, executeQuery, executeUpdate, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetType, getUpdateCount, getWarnings, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout |
paramWasNull
protected boolean paramWasNull
- Last parameter retrieved was null.
JtdsCallableStatement
JtdsCallableStatement(ConnectionJDBC2 connection,
java.lang.String sql,
int resultSetType,
int concurrency)
throws java.sql.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.- Throws:
java.sql.SQLException
-
findParameter
int findParameter(java.lang.String name,
boolean set)
throws java.sql.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
. - Throws:
java.sql.SQLException
-
getOutputValue
protected java.lang.Object getOutputValue(int parameterIndex)
throws java.sql.SQLException
- Retrieve the value of an output parameter.
- Parameters:
parameterIndex
- the ordinal position of the parameter- Returns:
- the parameter value as an
Object
- Throws:
java.sql.SQLException
- if the parameter has not been set
checkOpen
protected void checkOpen()
throws java.sql.SQLException
- Check that this statement is still open.
- Overrides:
checkOpen
in class JtdsPreparedStatement
- Throws:
java.sql.SQLException
- if statement closed.
executeMSBatch
protected java.sql.SQLException executeMSBatch(int size,
int executeSize,
java.util.ArrayList counts)
throws java.sql.SQLException
- Execute the SQL batch on a MS server.
- Overrides:
executeMSBatch
in class 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
. - Throws:
java.sql.SQLException
-
executeSybaseBatch
protected java.sql.SQLException executeSybaseBatch(int size,
int executeSize,
java.util.ArrayList counts)
throws java.sql.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 class JtdsPreparedStatement
- Parameters:
size
- the total size of the batchexecuteSize
- 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
- Throws:
java.sql.SQLException
- if a serious error occurs during execution
wasNull
public boolean wasNull()
throws java.sql.SQLException
- Specified by:
wasNull
in interface java.sql.CallableStatement
getByte
public byte getByte(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getByte
in interface java.sql.CallableStatement
getDouble
public double getDouble(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getDouble
in interface java.sql.CallableStatement
getFloat
public float getFloat(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getFloat
in interface java.sql.CallableStatement
getInt
public int getInt(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getInt
in interface java.sql.CallableStatement
getLong
public long getLong(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getLong
in interface java.sql.CallableStatement
getShort
public short getShort(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getShort
in interface java.sql.CallableStatement
getBoolean
public boolean getBoolean(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getBoolean
in interface java.sql.CallableStatement
getBytes
public byte[] getBytes(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getBytes
in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(int parameterIndex,
int sqlType)
throws java.sql.SQLException
- Specified by:
registerOutParameter
in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(int parameterIndex,
int sqlType,
int scale)
throws java.sql.SQLException
- Specified by:
registerOutParameter
in interface java.sql.CallableStatement
getObject
public java.lang.Object getObject(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getObject
in interface java.sql.CallableStatement
getString
public java.lang.String getString(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getString
in interface java.sql.CallableStatement
registerOutParameter
public void registerOutParameter(int parameterIndex,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
- Specified by:
registerOutParameter
in interface java.sql.CallableStatement
getByte
public byte getByte(java.lang.String parameterName)
throws java.sql.SQLException
getDouble
public double getDouble(java.lang.String parameterName)
throws java.sql.SQLException
getFloat
public float getFloat(java.lang.String parameterName)
throws java.sql.SQLException
getInt
public int getInt(java.lang.String parameterName)
throws java.sql.SQLException
getLong
public long getLong(java.lang.String parameterName)
throws java.sql.SQLException
getShort
public short getShort(java.lang.String parameterName)
throws java.sql.SQLException
getBoolean
public boolean getBoolean(java.lang.String parameterName)
throws java.sql.SQLException
getBytes
public byte[] getBytes(java.lang.String parameterName)
throws java.sql.SQLException
setByte
public void setByte(java.lang.String parameterName,
byte x)
throws java.sql.SQLException
setDouble
public void setDouble(java.lang.String parameterName,
double x)
throws java.sql.SQLException
setFloat
public void setFloat(java.lang.String parameterName,
float x)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType)
throws java.sql.SQLException
setInt
public void setInt(java.lang.String parameterName,
int x)
throws java.sql.SQLException
setNull
public void setNull(java.lang.String parameterName,
int sqlType)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType,
int scale)
throws java.sql.SQLException
setLong
public void setLong(java.lang.String parameterName,
long x)
throws java.sql.SQLException
setShort
public void setShort(java.lang.String parameterName,
short x)
throws java.sql.SQLException
setBoolean
public void setBoolean(java.lang.String parameterName,
boolean x)
throws java.sql.SQLException
setBytes
public void setBytes(java.lang.String parameterName,
byte[] x)
throws java.sql.SQLException
getBigDecimal
public java.math.BigDecimal getBigDecimal(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getBigDecimal
in interface java.sql.CallableStatement
getBigDecimal
public java.math.BigDecimal getBigDecimal(int parameterIndex,
int scale)
throws java.sql.SQLException
- Specified by:
getBigDecimal
in interface java.sql.CallableStatement
getURL
public java.net.URL getURL(int parameterIndex)
throws java.sql.SQLException
getArray
public java.sql.Array getArray(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getArray
in interface java.sql.CallableStatement
getBlob
public java.sql.Blob getBlob(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getBlob
in interface java.sql.CallableStatement
getClob
public java.sql.Clob getClob(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getClob
in interface java.sql.CallableStatement
getDate
public java.sql.Date getDate(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getDate
in interface java.sql.CallableStatement
getRef
public java.sql.Ref getRef(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getRef
in interface java.sql.CallableStatement
getTime
public java.sql.Time getTime(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getTime
in interface java.sql.CallableStatement
getTimestamp
public java.sql.Timestamp getTimestamp(int parameterIndex)
throws java.sql.SQLException
- Specified by:
getTimestamp
in interface java.sql.CallableStatement
setAsciiStream
public void setAsciiStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
throws java.sql.SQLException
setBinaryStream
public void setBinaryStream(java.lang.String parameterName,
java.io.InputStream x,
int length)
throws java.sql.SQLException
setCharacterStream
public void setCharacterStream(java.lang.String parameterName,
java.io.Reader reader,
int length)
throws java.sql.SQLException
getObject
public java.lang.Object getObject(java.lang.String parameterName)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType)
throws java.sql.SQLException
setObject
public void setObject(java.lang.String parameterName,
java.lang.Object x,
int targetSqlType,
int scale)
throws java.sql.SQLException
getObject
public java.lang.Object getObject(int parameterIndex,
java.util.Map map)
throws java.sql.SQLException
- Specified by:
getObject
in interface java.sql.CallableStatement
getString
public java.lang.String getString(java.lang.String parameterName)
throws java.sql.SQLException
registerOutParameter
public void registerOutParameter(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
setNull
public void setNull(java.lang.String parameterName,
int sqlType,
java.lang.String typeName)
throws java.sql.SQLException
setString
public void setString(java.lang.String parameterName,
java.lang.String x)
throws java.sql.SQLException
getBigDecimal
public java.math.BigDecimal getBigDecimal(java.lang.String parameterName)
throws java.sql.SQLException
setBigDecimal
public void setBigDecimal(java.lang.String parameterName,
java.math.BigDecimal x)
throws java.sql.SQLException
getURL
public java.net.URL getURL(java.lang.String parameterName)
throws java.sql.SQLException
setURL
public void setURL(java.lang.String parameterName,
java.net.URL x)
throws java.sql.SQLException
getArray
public java.sql.Array getArray(java.lang.String parameterName)
throws java.sql.SQLException
getBlob
public java.sql.Blob getBlob(java.lang.String parameterName)
throws java.sql.SQLException
getClob
public java.sql.Clob getClob(java.lang.String parameterName)
throws java.sql.SQLException
getDate
public java.sql.Date getDate(java.lang.String parameterName)
throws java.sql.SQLException
setDate
public void setDate(java.lang.String parameterName,
java.sql.Date x)
throws java.sql.SQLException
getDate
public java.sql.Date getDate(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
- Specified by:
getDate
in interface java.sql.CallableStatement
getRef
public java.sql.Ref getRef(java.lang.String parameterName)
throws java.sql.SQLException
getTime
public java.sql.Time getTime(java.lang.String parameterName)
throws java.sql.SQLException
setTime
public void setTime(java.lang.String parameterName,
java.sql.Time x)
throws java.sql.SQLException
getTime
public java.sql.Time getTime(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
- Specified by:
getTime
in interface java.sql.CallableStatement
getTimestamp
public java.sql.Timestamp getTimestamp(java.lang.String parameterName)
throws java.sql.SQLException
setTimestamp
public void setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x)
throws java.sql.SQLException
getTimestamp
public java.sql.Timestamp getTimestamp(int parameterIndex,
java.util.Calendar cal)
throws java.sql.SQLException
- Specified by:
getTimestamp
in interface java.sql.CallableStatement
getObject
public java.lang.Object getObject(java.lang.String parameterName,
java.util.Map map)
throws java.sql.SQLException
getDate
public java.sql.Date getDate(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
getTime
public java.sql.Time getTime(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
getTimestamp
public java.sql.Timestamp getTimestamp(java.lang.String parameterName,
java.util.Calendar cal)
throws java.sql.SQLException
setDate
public void setDate(java.lang.String parameterName,
java.sql.Date x,
java.util.Calendar cal)
throws java.sql.SQLException
setTime
public void setTime(java.lang.String parameterName,
java.sql.Time x,
java.util.Calendar cal)
throws java.sql.SQLException
setTimestamp
public void setTimestamp(java.lang.String parameterName,
java.sql.Timestamp x,
java.util.Calendar cal)
throws java.sql.SQLException
Generated on August 22 2007