public class JtdsPreparedStatement extends JtdsStatement implements java.sql.PreparedStatement
Implementation notes:
Modifier and Type | Field and Description |
---|---|
private static java.text.NumberFormat |
f
Used to format numeric values when scale is specified.
|
(package private) java.util.Collection |
handles
Collection of handles used by this statement
|
private java.lang.String |
originalSql
The original SQL statement provided at construction time.
|
protected ParamInfo[] |
parameters
The parameter list for the call.
|
protected ParamInfo[] |
paramMetaData
The cached parameter meta data.
|
protected java.lang.String |
procName
The procedure name for CallableStatements.
|
private boolean |
returnKeys
True to return generated keys.
|
protected java.lang.String |
sql
The SQL statement being prepared.
|
protected java.lang.String |
sqlWord
The first SQL keyword in the SQL string.
|
batchValues, BOOLEAN, CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, colMetaData, connection, currentResult, cursorName, DATALINK, DEFAULT_FETCH_SIZE, escapeProcessing, EXECUTE_FAILED, fetchDirection, fetchSize, GENKEYCOL, genKeyResultSet, KEEP_CURRENT_RESULT, maxFieldSize, maxRows, messages, NO_GENERATED_KEYS, openResultSets, queryTimeout, resultQueue, resultSetConcurrency, resultSetType, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO, tds
Constructor and Description |
---|
JtdsPreparedStatement(JtdsConnection connection,
java.lang.String sql,
int resultSetType,
int concurrency,
boolean returnKeys)
Construct a new preparedStatement object.
|
Modifier and Type | Method and Description |
---|---|
void |
addBatch() |
void |
addBatch(java.lang.String sql) |
protected void |
checkOpen()
Check that this statement is still open.
|
void |
clearParameters() |
void |
close() |
boolean |
execute() |
boolean |
execute(java.lang.String sql) |
boolean |
execute(java.lang.String arg0,
int arg1) |
boolean |
execute(java.lang.String arg0,
int[] arg1) |
boolean |
execute(java.lang.String arg0,
java.lang.String[] arg1) |
protected java.sql.SQLException |
executeMSBatch(int size,
int executeSize,
java.util.ArrayList counts)
Execute the SQL batch on a MS server.
|
java.sql.ResultSet |
executeQuery() |
java.sql.ResultSet |
executeQuery(java.lang.String sql) |
protected java.sql.SQLException |
executeSybaseBatch(int size,
int executeSize,
java.util.ArrayList counts)
Execute the SQL batch on a Sybase server.
|
int |
executeUpdate() |
int |
executeUpdate(java.lang.String sql) |
int |
executeUpdate(java.lang.String sql,
int getKeys) |
int |
executeUpdate(java.lang.String arg0,
int[] arg1) |
int |
executeUpdate(java.lang.String arg0,
java.lang.String[] arg1) |
java.sql.ResultSetMetaData |
getMetaData() |
protected ParamInfo |
getParameter(int parameterIndex)
Check the supplied index and return the selected parameter.
|
java.sql.ParameterMetaData |
getParameterMetaData() |
private static java.lang.String |
normalize(java.lang.String sql,
int level)
This method converts native call syntax into (hopefully) valid JDBC
escape syntax.
|
protected static java.lang.String |
normalizeCall(java.lang.String sql)
This method converts native call syntax into (hopefully) valid JDBC
escape syntax.
|
protected void |
notSupported(java.lang.String method)
Report that user tried to call a method not supported on this type of statement.
|
private static boolean |
openComment(java.lang.String sql,
int offset) |
void |
setArray(int arg0,
java.sql.Array arg1) |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x) |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream inputStream,
int length) |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x,
long length) |
void |
setBigDecimal(int parameterIndex,
java.math.BigDecimal x) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream x) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream x,
int length) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream x,
long length) |
void |
setBlob(int parameterIndex,
java.sql.Blob x) |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream) |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream,
long length) |
void |
setBoolean(int parameterIndex,
boolean x) |
void |
setByte(int parameterIndex,
byte x) |
void |
setBytes(int parameterIndex,
byte[] x) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
int length) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setClob(int parameterIndex,
java.sql.Clob x) |
void |
setClob(int parameterIndex,
java.io.Reader reader) |
void |
setClob(int parameterIndex,
java.io.Reader reader,
long length) |
(package private) void |
setColMetaData(ColInfo[] value)
Update the cached column meta data information.
|
void |
setDate(int parameterIndex,
java.sql.Date x) |
void |
setDate(int parameterIndex,
java.sql.Date x,
java.util.Calendar cal) |
void |
setDouble(int parameterIndex,
double x) |
void |
setFloat(int parameterIndex,
float x) |
void |
setInt(int parameterIndex,
int x) |
void |
setLong(int parameterIndex,
long x) |
void |
setNCharacterStream(int parameterIndex,
java.io.Reader value) |
void |
setNCharacterStream(int parameterIndex,
java.io.Reader value,
long length) |
void |
setNClob(int parameterIndex,
java.sql.NClob value) |
void |
setNClob(int parameterIndex,
java.io.Reader reader) |
void |
setNClob(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setNString(int parameterIndex,
java.lang.String value) |
void |
setNull(int parameterIndex,
int sqlType) |
void |
setNull(int parameterIndex,
int sqlType,
java.lang.String typeName) |
void |
setObject(int parameterIndex,
java.lang.Object x) |
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType) |
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale) |
void |
setObjectBase(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale)
Generic setObject method.
|
protected void |
setParameter(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale,
int length)
Update the ParamInfo object for the specified parameter.
|
(package private) void |
setParamMetaData(ParamInfo[] value)
Update the cached parameter meta data information.
|
void |
setRef(int parameterIndex,
java.sql.Ref x) |
void |
setRowId(int parameterIndex,
java.sql.RowId x) |
void |
setShort(int parameterIndex,
short x) |
void |
setSQLXML(int parameterIndex,
java.sql.SQLXML xmlObject) |
void |
setString(int parameterIndex,
java.lang.String x) |
void |
setTime(int parameterIndex,
java.sql.Time x) |
void |
setTime(int parameterIndex,
java.sql.Time x,
java.util.Calendar cal) |
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x) |
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x,
java.util.Calendar cal) |
void |
setUnicodeStream(int parameterIndex,
java.io.InputStream inputStream,
int length) |
void |
setURL(int parameterIndex,
java.net.URL url) |
java.lang.String |
toString()
Returns the SQL command provided at construction time.
|
addWarning, cacheResults, cancel, checkCursorException, clearBatch, clearWarnings, closeAllResultSets, closeCurrentResultSet, closeOnCompletion, executeBatch, executeSQL, executeSQLQuery, finalize, getConnection, getDefaultFetchSize, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMessages, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getTds, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, notImplemented, reset, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, unwrap, useCursor
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
cancel, clearBatch, clearWarnings, closeOnCompletion, executeBatch, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
protected final java.lang.String sql
private final java.lang.String originalSql
protected java.lang.String sqlWord
protected java.lang.String procName
protected ParamInfo[] parameters
private boolean returnKeys
protected ParamInfo[] paramMetaData
private static final java.text.NumberFormat f
java.util.Collection handles
JtdsPreparedStatement(JtdsConnection connection, java.lang.String sql, int resultSetType, int concurrency, boolean returnKeys) throws java.sql.SQLException
connection
- The parent connection.sql
- The SQL statement to prepare.resultSetType
- The result set type eg SCROLLABLE etc.concurrency
- The result set concurrency eg READONLY.returnKeys
- True if generated keys should be returned.java.sql.SQLException
public java.lang.String toString()
toString
in class java.lang.Object
protected static java.lang.String normalizeCall(java.lang.String sql) throws java.sql.SQLException
This method converts native call syntax into (hopefully) valid JDBC escape syntax.
Note: This method is required for backwards compatibility with previous versions of jTDS. Strictly speaking only the JDBC syntax needs to be recognized, constructions such as "?=#testproc ?,?" are neither valid native syntax nor valid escapes. All the substrings and trims below are not as bad as they look. The objects created all refer back to the original SQL string it is just the start and length positions which change.
sql
- the SQL statement to processjava.sql.SQLException
- if the SQL statement is detected to be a normal SQL INSERT, UPDATE or
DELETE statement instead of a procedure callprivate static java.lang.String normalize(java.lang.String sql, int level) throws java.sql.SQLException
This method converts native call syntax into (hopefully) valid JDBC escape syntax.
Note: This method is required for backwards compatibility with previous versions of jTDS. Strictly speaking only the JDBC syntax needs to be recognized, constructions such as "?=#testproc ?,?" are neither valid native syntax nor valid escapes. All the substrings and trims below are not as bad as they look. The objects created all refer back to the original SQL string it is just the start and length positions which change.
sql
- the SQL statement to processjava.sql.SQLException
- if the SQL statement is detected to be a normal SQL INSERT, UPDATE or
DELETE statement instead of a procedure callprivate static boolean openComment(java.lang.String sql, int offset) throws java.sql.SQLException
java.sql.SQLException
protected void checkOpen() throws java.sql.SQLException
checkOpen
in class JtdsStatement
java.sql.SQLException
- if statement closed.protected void notSupported(java.lang.String method) throws java.sql.SQLException
method
- The method name to report in the error message.java.sql.SQLException
protected java.sql.SQLException executeMSBatch(int size, int executeSize, java.util.ArrayList counts) throws java.sql.SQLException
prepareSQL=1
or 3
, the driver will first prepare temporary stored
procedures or statements for each parameter combination found in the batch. The handles to these pre-preared
statements will then be used to execute the actual batch statements.executeMSBatch
in class JtdsStatement
size
- the total size of the batchexecuteSize
- the maximum number of statements to send in one requestcounts
- the returned update countsSQLException
java.sql.SQLException
- if a serious error occurs during executionprotected java.sql.SQLException executeSybaseBatch(int size, int executeSize, java.util.ArrayList counts) throws java.sql.SQLException
CallableStatements
.executeSybaseBatch
in class JtdsStatement
size
- the total size of the batchexecuteSize
- the maximum number of statements to send in one requestcounts
- the returned update countsSQLException
java.sql.SQLException
- if a serious error occurs during executionprotected ParamInfo getParameter(int parameterIndex) throws java.sql.SQLException
parameterIndex
- the parameter index 1 to n.ParamInfo
object.java.sql.SQLException
- if the statement is closed;
if parameterIndex
is less than 0;
if parameterIndex
is greater than the
number of parameters;
if checkIfSet
was true
and the parameter was not setpublic void setObjectBase(int parameterIndex, java.lang.Object x, int targetSqlType, int scale) throws java.sql.SQLException
parameterIndex
- Parameter index 1 to n.x
- The value to set.targetSqlType
- The java.sql.Types constant describing the data.scale
- The decimal scale -1 if not set.java.sql.SQLException
protected void setParameter(int parameterIndex, java.lang.Object x, int targetSqlType, int scale, int length) throws java.sql.SQLException
parameterIndex
- Parameter index 1 to n.x
- The value to set.targetSqlType
- The java.sql.Types constant describing the data.scale
- The decimal scale -1 if not set.length
- The length of the data item.java.sql.SQLException
void setColMetaData(ColInfo[] value)
value
- The Column meta data array.void setParamMetaData(ParamInfo[] value)
value
- The Column meta data array.public void close() throws java.sql.SQLException
close
in interface java.lang.AutoCloseable
close
in interface java.sql.Statement
close
in class JtdsStatement
java.sql.SQLException
public int executeUpdate() throws java.sql.SQLException
executeUpdate
in interface java.sql.PreparedStatement
java.sql.SQLException
public void addBatch() throws java.sql.SQLException
addBatch
in interface java.sql.PreparedStatement
java.sql.SQLException
public void clearParameters() throws java.sql.SQLException
clearParameters
in interface java.sql.PreparedStatement
java.sql.SQLException
public boolean execute() throws java.sql.SQLException
execute
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setByte(int parameterIndex, byte x) throws java.sql.SQLException
setByte
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setDouble(int parameterIndex, double x) throws java.sql.SQLException
setDouble
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setFloat(int parameterIndex, float x) throws java.sql.SQLException
setFloat
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setInt(int parameterIndex, int x) throws java.sql.SQLException
setInt
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNull(int parameterIndex, int sqlType) throws java.sql.SQLException
setNull
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setLong(int parameterIndex, long x) throws java.sql.SQLException
setLong
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setShort(int parameterIndex, short x) throws java.sql.SQLException
setShort
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException
setBoolean
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException
setBytes
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setAsciiStream(int parameterIndex, java.io.InputStream inputStream, int length) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setUnicodeStream(int parameterIndex, java.io.InputStream inputStream, int length) throws java.sql.SQLException
setUnicodeStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader, int length) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException
setObject
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType) throws java.sql.SQLException
setObject
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale) throws java.sql.SQLException
setObject
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNull(int parameterIndex, int sqlType, java.lang.String typeName) throws java.sql.SQLException
setNull
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException
setString
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException
setBigDecimal
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setURL(int parameterIndex, java.net.URL url) throws java.sql.SQLException
setURL
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setArray(int arg0, java.sql.Array arg1) throws java.sql.SQLException
setArray
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBlob(int parameterIndex, java.sql.Blob x) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.sql.Clob x) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setDate(int parameterIndex, java.sql.Date x) throws java.sql.SQLException
setDate
in interface java.sql.PreparedStatement
java.sql.SQLException
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException
getParameterMetaData
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setRef(int parameterIndex, java.sql.Ref x) throws java.sql.SQLException
setRef
in interface java.sql.PreparedStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery() throws java.sql.SQLException
executeQuery
in interface java.sql.PreparedStatement
java.sql.SQLException
public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
getMetaData
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException
setTime
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException
setTimestamp
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal) throws java.sql.SQLException
setDate
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal) throws java.sql.SQLException
setTime
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal) throws java.sql.SQLException
setTimestamp
in interface java.sql.PreparedStatement
java.sql.SQLException
public int executeUpdate(java.lang.String sql) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
executeUpdate
in class JtdsStatement
java.sql.SQLException
public void addBatch(java.lang.String sql) throws java.sql.SQLException
addBatch
in interface java.sql.Statement
addBatch
in class JtdsStatement
java.sql.SQLException
public boolean execute(java.lang.String sql) throws java.sql.SQLException
execute
in interface java.sql.Statement
execute
in class JtdsStatement
java.sql.SQLException
public int executeUpdate(java.lang.String sql, int getKeys) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
executeUpdate
in class JtdsStatement
java.sql.SQLException
public boolean execute(java.lang.String arg0, int arg1) throws java.sql.SQLException
execute
in interface java.sql.Statement
execute
in class JtdsStatement
java.sql.SQLException
public int executeUpdate(java.lang.String arg0, int[] arg1) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
executeUpdate
in class JtdsStatement
java.sql.SQLException
public boolean execute(java.lang.String arg0, int[] arg1) throws java.sql.SQLException
execute
in interface java.sql.Statement
execute
in class JtdsStatement
java.sql.SQLException
public int executeUpdate(java.lang.String arg0, java.lang.String[] arg1) throws java.sql.SQLException
executeUpdate
in interface java.sql.Statement
executeUpdate
in class JtdsStatement
java.sql.SQLException
public boolean execute(java.lang.String arg0, java.lang.String[] arg1) throws java.sql.SQLException
execute
in interface java.sql.Statement
execute
in class JtdsStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException
executeQuery
in interface java.sql.Statement
executeQuery
in class JtdsStatement
java.sql.SQLException
public void setAsciiStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setAsciiStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBlob(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBlob(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value) throws java.sql.SQLException
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value, long length) throws java.sql.SQLException
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.sql.NClob value) throws java.sql.SQLException
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNString(int parameterIndex, java.lang.String value) throws java.sql.SQLException
setNString
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setRowId(int parameterIndex, java.sql.RowId x) throws java.sql.SQLException
setRowId
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject) throws java.sql.SQLException
setSQLXML
in interface java.sql.PreparedStatement
java.sql.SQLException
Generated on June 8 2013