Package com.microsoft.sqlserver.jdbc

## Class SQLServerCallableStatement42

- java.lang.Object
- - com.microsoft.sqlserver.jdbc.SQLServerStatement
  - - com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
    - - com.microsoft.sqlserver.jdbc.SQLServerCallableStatement
      - - com.microsoft.sqlserver.jdbc.SQLServerCallableStatement42

All Implemented Interfaces:
  `ISQLServerCallableStatement`, `ISQLServerCallableStatement42`, `ISQLServerPreparedStatement`, `ISQLServerPreparedStatement42`, `ISQLServerStatement`, `java.lang.AutoCloseable`, `java.sql.CallableStatement`, `java.sql.PreparedStatement`, `java.sql.Statement`, `java.sql.Wrapper`

    public class SQLServerCallableStatement42
    extends SQLServerCallableStatement
    implements ISQLServerCallableStatement42

This class is separated from SQLServerCallableStatement class in order to resolve compiling error of missing Java 8 Types when running with Java 7. This class will be initialized instead of SQLServerCallableStatement when Java 8 and JDBC 4.2 are used. It shares the same PreparedStatement implementation with SQLServerPreparedStatement42.

### Field Summary

### Fields inherited from class com.microsoft.sqlserver.jdbc.SQLServerStatement

`stmtColumnEncriptionSetting`

### Fields inherited from interface java.sql.Statement

`CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `registerOutParameter​(int index, java.sql.SQLType sqlType)`
`void` `registerOutParameter​(int index, java.sql.SQLType sqlType, int scale)`
`void` `registerOutParameter​(int index, java.sql.SQLType sqlType, int precision, int scale)` Registers the parameter in ordinal position index to be of JDBC type sqlType.
`void` `registerOutParameter​(int index, java.sql.SQLType sqlType, java.lang.String typeName)`
`void` `registerOutParameter​(java.lang.String parameterName, java.sql.SQLType sqlType)`
`void` `registerOutParameter​(java.lang.String parameterName, java.sql.SQLType sqlType, int scale)`
`void` `registerOutParameter​(java.lang.String parameterName, java.sql.SQLType sqlType, int precision, int scale)` Registers the parameter in ordinal position index to be of JDBC type sqlType.
`void` `registerOutParameter​(java.lang.String parameterName, java.sql.SQLType sqlType, java.lang.String typeName)`
`void` `setObject​(int index, java.lang.Object obj, java.sql.SQLType jdbcType)`
`void` `setObject​(int parameterIndex, java.lang.Object x, java.sql.SQLType targetSqlType, int scaleOrLength)`
`void` `setObject​(int parameterIndex, java.lang.Object x, java.sql.SQLType targetSqlType, java.lang.Integer precision, java.lang.Integer scale)` Sets the value of the designated parameter with the given object.
`void` `setObject​(int parameterIndex, java.lang.Object x, java.sql.SQLType targetSqlType, java.lang.Integer precision, java.lang.Integer scale, boolean forceEncrypt)` Sets the value of the designated parameter with the given object.
`void` `setObject​(java.lang.String sCol, java.lang.Object obj, java.sql.SQLType jdbcType)`
`void` `setObject​(java.lang.String sCol, java.lang.Object obj, java.sql.SQLType jdbcType, int scale)`
`void` `setObject​(java.lang.String sCol, java.lang.Object obj, java.sql.SQLType jdbcType, int scale, boolean forceEncrypt)` Sets the value of the designated parameter with the given object.

### Methods inherited from interface java.sql.CallableStatement

`getArray, getArray, getBigDecimal, getBigDecimal, getBigDecimal, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getDate, getDate, getDate, getDate, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getLong, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getURL, getURL, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setURL, wasNull`

### Methods inherited from interface com.microsoft.sqlserver.jdbc.ISQLServerCallableStatement

`getDateTimeOffset, getDateTimeOffset, setDateTimeOffset`

### Methods inherited from interface com.microsoft.sqlserver.jdbc.ISQLServerPreparedStatement

`setDateTimeOffset`

### Methods inherited from interface com.microsoft.sqlserver.jdbc.ISQLServerStatement

`getResponseBuffering, setResponseBuffering`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.sql.PreparedStatement

`addBatch, clearParameters, execute, executeLargeUpdate, executeQuery, executeUpdate, getMetaData, getParameterMetaData, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNull, setNull, setObject, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL`

### Methods inherited from class com.microsoft.sqlserver.jdbc.SQLServerCallableStatement

`getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getDate, getDate, getDate, getDate, getDateTime, getDateTime, getDateTime, getDateTime, getDateTimeOffset, getDateTimeOffset, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getLong, getLong, getMoney, getMoney, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRowId, getRowId, getShort, getShort, getSmallDateTime, getSmallDateTime, getSmallDateTime, getSmallDateTime, getSmallMoney, getSmallMoney, getSQLXML, getSQLXML, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getURL, getURL, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, registerOutParameter, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDate, setDateTime, setDateTime, setDateTimeOffset, setDateTimeOffset, setDateTimeOffset, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setMoney, setMoney, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setRowId, setShort, setShort, setSmallDateTime, setSmallDateTime, setSmallMoney, setSmallMoney, setSQLXML, setString, setString, setStructured, setStructured, setStructured, setTime, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setUniqueIdentifier, setUniqueIdentifier, setURL, wasNull`

### Methods inherited from class com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement

`addBatch, addBatch, clearBatch, clearParameters, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeQuery, executeQuery, executeUpdate, executeUpdate, getMetaData, getParameterMetaData, getParameterMetaData, getPreparedStatementHandle, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setDate, setDate, setDate, setDateTime, setDateTime, setDateTimeOffset, setDateTimeOffset, setDateTimeOffset, setDouble, setDouble, setFloat, setFloat, setInt, setInt, setLong, setLong, setMoney, setMoney, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setRef, setRowId, setShort, setShort, setSmallDateTime, setSmallDateTime, setSmallMoney, setSmallMoney, setSQLXML, setString, setString, setStructured, setStructured, setStructured, setTime, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setUnicodeStream, setUniqueIdentifier, setUniqueIdentifier, setURL`

### Methods inherited from class com.microsoft.sqlserver.jdbc.SQLServerStatement

`cancel, clearWarnings, close, closeOnCompletion, execute, execute, execute, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResponseBuffering, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isWrapperFor, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, setResponseBuffering, toString, unwrap`

### Methods inherited from interface java.sql.Statement

`addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Method Detail

#### registerOutParameter

    public void registerOutParameter​(int index,
                                     java.sql.SQLType sqlType)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### registerOutParameter

    public void registerOutParameter​(int index,
                                     java.sql.SQLType sqlType,
                                     java.lang.String typeName)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### registerOutParameter

    public void registerOutParameter​(int index,
                                     java.sql.SQLType sqlType,
                                     int scale)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### registerOutParameter

    public void registerOutParameter​(int index,
                                     java.sql.SQLType sqlType,
                                     int precision,
                                     int scale)
                              throws SQLServerException

Description copied from interface: `ISQLServerCallableStatement42`
Registers the parameter in ordinal position index to be of JDBC type sqlType. All OUT parameters must be registered before a stored procedure is executed.

The JDBC type specified by sqlType for an OUT parameter determines the Java type that must be used in the get method to read the value of that parameter.

Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Parameters:
  `index` - the first parameter is 1, the second is 2,...
  `sqlType` - the JDBC type code defined by SQLType to use to register the OUT Parameter.
  `precision` - the sum of the desired number of digits to the left and right of the decimal point. It must be greater than or equal to zero.
  `scale` - the desired number of digits to the right of the decimal point. It must be greater than or equal to zero.
Throws:
  `SQLServerException` - If any errors occur.

#### setObject

    public void setObject​(java.lang.String sCol,
                          java.lang.Object obj,
                          java.sql.SQLType jdbcType)
                   throws SQLServerException

Specified by:
  `setObject` in interface `java.sql.CallableStatement`
Specified by:
  `setObject` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### setObject

    public void setObject​(java.lang.String sCol,
                          java.lang.Object obj,
                          java.sql.SQLType jdbcType,
                          int scale)
                   throws SQLServerException

Specified by:
  `setObject` in interface `java.sql.CallableStatement`
Specified by:
  `setObject` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### setObject

    public void setObject​(java.lang.String sCol,
                          java.lang.Object obj,
                          java.sql.SQLType jdbcType,
                          int scale,
                          boolean forceEncrypt)
                   throws SQLServerException

Description copied from interface: `ISQLServerCallableStatement42`
Sets the value of the designated parameter with the given object.

Specified by:
  `setObject` in interface `ISQLServerCallableStatement42`
Parameters:
  `sCol` - the name of the parameter
  `obj` - the object containing the input parameter value
  `jdbcType` - the SQL type to be sent to the database
  `scale` - scale the desired number of digits to the right of the decimal point. It must be greater than or equal to zero.
  `forceEncrypt` - true if force encryption is on, false if force encryption is off
Throws:
  `SQLServerException` - If any errors occur.

#### registerOutParameter

    public void registerOutParameter​(java.lang.String parameterName,
                                     java.sql.SQLType sqlType,
                                     java.lang.String typeName)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### registerOutParameter

    public void registerOutParameter​(java.lang.String parameterName,
                                     java.sql.SQLType sqlType,
                                     int scale)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### registerOutParameter

    public void registerOutParameter​(java.lang.String parameterName,
                                     java.sql.SQLType sqlType,
                                     int precision,
                                     int scale)
                              throws SQLServerException

Description copied from interface: `ISQLServerCallableStatement42`
Registers the parameter in ordinal position index to be of JDBC type sqlType. All OUT parameters must be registered before a stored procedure is executed.

The JDBC type specified by sqlType for an OUT parameter determines the Java type that must be used in the get method to read the value of that parameter.

Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Parameters:
  `parameterName` - the name of the parameter
  `sqlType` - the JDBC type code defined by SQLType to use to register the OUT Parameter.
  `precision` - the sum of the desired number of digits to the left and right of the decimal point. It must be greater than or equal to zero.
  `scale` - the desired number of digits to the right of the decimal point. It must be greater than or equal to zero.
Throws:
  `SQLServerException` - If any errors occur.

#### registerOutParameter

    public void registerOutParameter​(java.lang.String parameterName,
                                     java.sql.SQLType sqlType)
                              throws SQLServerException

Specified by:
  `registerOutParameter` in interface `java.sql.CallableStatement`
Specified by:
  `registerOutParameter` in interface `ISQLServerCallableStatement42`
Throws:
  `SQLServerException`

#### setObject

    public final void setObject​(int index,
                                java.lang.Object obj,
                                java.sql.SQLType jdbcType)
                         throws SQLServerException

Specified by:
  `setObject` in interface `ISQLServerPreparedStatement42`
Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `SQLServerException`

#### setObject

    public final void setObject​(int parameterIndex,
                                java.lang.Object x,
                                java.sql.SQLType targetSqlType,
                                int scaleOrLength)
                         throws SQLServerException

Specified by:
  `setObject` in interface `ISQLServerPreparedStatement42`
Specified by:
  `setObject` in interface `java.sql.PreparedStatement`
Throws:
  `SQLServerException`

#### setObject

    public final void setObject​(int parameterIndex,
                                java.lang.Object x,
                                java.sql.SQLType targetSqlType,
                                java.lang.Integer precision,
                                java.lang.Integer scale)
                         throws SQLServerException

Description copied from interface: `ISQLServerPreparedStatement42`
Sets the value of the designated parameter with the given object. This method is similar to `ISQLServerPreparedStatement42.setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)`, except that it assumes a scale of zero.

The default implementation will throw `SQLFeatureNotSupportedException`

Specified by:
  `setObject` in interface `ISQLServerPreparedStatement42`
Parameters:
  `parameterIndex` - the first parameter is 1, the second is 2, ...
  `x` - the object containing the input parameter value
  `targetSqlType` - the SQL type to be sent to the database
  `precision` - the precision of the column
  `scale` - the scale of the column
Throws:
  `SQLServerException` - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed `PreparedStatement`

#### setObject

    public final void setObject​(int parameterIndex,
                                java.lang.Object x,
                                java.sql.SQLType targetSqlType,
                                java.lang.Integer precision,
                                java.lang.Integer scale,
                                boolean forceEncrypt)
                         throws SQLServerException

Description copied from interface: `ISQLServerPreparedStatement42`
Sets the value of the designated parameter with the given object. This method is similar to `ISQLServerPreparedStatement42.setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)`, except that it assumes a scale of zero.

The default implementation will throw `SQLFeatureNotSupportedException`

Specified by:
  `setObject` in interface `ISQLServerPreparedStatement42`
Parameters:
  `parameterIndex` - the first parameter is 1, the second is 2, ...
  `x` - the object containing the input parameter value
  `targetSqlType` - the SQL type to be sent to the database
  `precision` - the precision of the column
  `scale` - the scale of the column
  `forceEncrypt` - If the boolean forceEncrypt is set to true, the query parameter will only be set if the designation column is encrypted and Always Encrypted is enabled on the connection or on the statement. If the boolean forceEncrypt is set to false, the driver will not force encryption on parameters.
Throws:
  `SQLServerException` - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed `PreparedStatement`