Package com.microsoft.sqlserver.jdbc

## Interface ISQLServerCallableStatement

All Superinterfaces:
  `java.lang.AutoCloseable`, `java.sql.CallableStatement`, `ISQLServerPreparedStatement`, `ISQLServerStatement`, `java.sql.PreparedStatement`, `java.io.Serializable`, `java.sql.Statement`, `java.sql.Wrapper`

All Known Implementing Classes:
  `SQLServerCallableStatement`

    public interface ISQLServerCallableStatement
    extends java.sql.CallableStatement, ISQLServerPreparedStatement

Provides an interface to the `SQLServerCallableStatement` class.

### Field Summary

### 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 Abstract Methods Deprecated Methods
`java.io.InputStream` `getAsciiStream​(int parameterIndex)` Returns the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters.
`java.io.InputStream` `getAsciiStream​(java.lang.String parameterName)` Returns the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters.
`java.math.BigDecimal` `getBigDecimal​(java.lang.String parameterName, int scale)` Deprecated.
`java.io.InputStream` `getBinaryStream​(int parameterIndex)` Returns the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted bytes.
`java.io.InputStream` `getBinaryStream​(java.lang.String parameterName)` Returns the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted `byte`s.
`java.sql.Timestamp` `getDateTime​(int index)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getDateTime​(int index, java.util.Calendar cal)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getDateTime​(java.lang.String parameterName)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getDateTime​(java.lang.String name, java.util.Calendar cal)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`DateTimeOffset` `getDateTimeOffset​(int parameterIndex)` Returns the DateTimeOffset value of parameter with index parameterIndex.
`DateTimeOffset` `getDateTimeOffset​(java.lang.String parameterName)` Returns the DateTimeOffset value of parameter with name parameterName.
`java.math.BigDecimal` `getMoney​(int parameterIndex)` Returns the value of the column specified as a java.math.BigDecimal object.
`java.math.BigDecimal` `getMoney​(java.lang.String parameterName)` Returns the value of the column specified as a java.math.BigDecimal object.
`java.sql.Timestamp` `getSmallDateTime​(int index)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getSmallDateTime​(int index, java.util.Calendar cal)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getSmallDateTime​(java.lang.String parameterName)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.sql.Timestamp` `getSmallDateTime​(java.lang.String name, java.util.Calendar cal)` Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
`java.math.BigDecimal` `getSmallMoney​(int parameterIndex)` Returns the value of the column specified as a java.math.BigDecimal object.
`java.math.BigDecimal` `getSmallMoney​(java.lang.String parameterName)` Returns the value of the column specified as a java.math.BigDecimal object.
`void` `registerOutParameter​(int parameterIndex, int sqlType, int precision, int scale)` Registers the parameter in ordinal position index to be of JDBC type sqlType.
`void` `registerOutParameter​(int parameterIndex, 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, int 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, int precision, int scale)` Registers the parameter in ordinal position index to be of JDBC type sqlType.
`void` `setBigDecimal​(java.lang.String parameterName, java.math.BigDecimal value, int precision, int scale)` Sets the designated parameter to the given `java.math.BigDecimal` value.
`void` `setBigDecimal​(java.lang.String parameterName, java.math.BigDecimal value, int precision, int scale, boolean forceEncrypt)` Sets the designated parameter to the given `java.math.BigDecimal` value.
`void` `setBoolean​(java.lang.String parameterName, boolean value, boolean forceEncrypt)` Sets the designated parameter to the given Java `boolean` value.
`void` `setByte​(java.lang.String parameterName, byte value, boolean forceEncrypt)` Sets the designated parameter to the given Java `byte` value.
`void` `setBytes​(java.lang.String parameterName, byte[] value, boolean forceEncrypt)` Sets the designated parameter to the given Java array of bytes.
`void` `setDate​(java.lang.String parameterName, java.sql.Date value, java.util.Calendar calendar, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Date` value, using the given `Calendar` object.
`void` `setDateTime​(java.lang.String parameterName, java.sql.Timestamp value)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setDateTime​(java.lang.String parameterName, java.sql.Timestamp value, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setDateTimeOffset​(java.lang.String parameterName, DateTimeOffset value)` Sets parameter parameterName to DateTimeOffset value.
`void` `setDateTimeOffset​(java.lang.String parameterName, DateTimeOffset value, int scale)` Sets parameter parameterName to DateTimeOffset value.
`void` `setDateTimeOffset​(java.lang.String parameterName, DateTimeOffset value, int scale, boolean forceEncrypt)` Sets parameter parameterName to DateTimeOffset value.
`void` `setDouble​(java.lang.String parameterName, double value, boolean forceEncrypt)` Sets the designated parameter to the given Java `double` value.
`void` `setFloat​(java.lang.String parameterName, float value, boolean forceEncrypt)` Sets the designated parameter to the given Java `float` value.
`void` `setInt​(java.lang.String parameterName, int value, boolean forceEncrypt)` Sets the designated parameter to the given Java `int` value.
`void` `setLong​(java.lang.String parameterName, long value, boolean forceEncrypt)` Sets the designated parameter to the given Java `long` value.
`void` `setMoney​(java.lang.String parameterName, java.math.BigDecimal value)` Sets the designated parameter to the given Java `java.math.BigDecimal` value.
`void` `setMoney​(java.lang.String parameterName, java.math.BigDecimal value, boolean forceEncrypt)` Sets the designated parameter to the given Java `java.math.BigDecimal` value.
`void` `setNString​(java.lang.String parameterName, java.lang.String value, boolean forceEncrypt)` Sets the designated parameter to the given `String` object.
`void` `setObject​(java.lang.String parameterName, java.lang.Object value, int sqlType, int decimals, boolean forceEncrypt)` Sets the value of the designated parameter with the given object.
`void` `setObject​(java.lang.String parameterName, java.lang.Object value, int targetSqlType, java.lang.Integer precision, int scale)` Sets the value of the designated parameter with the given object.
`void` `setObject​(java.lang.String parameterName, java.lang.Object value, java.sql.SQLType jdbcType, int scale, boolean forceEncrypt)` Sets the value of the designated parameter with the given object.
`void` `setShort​(java.lang.String parameterName, short value, boolean forceEncrypt)` Sets the designated parameter to the given Java `short` value.
`void` `setSmallDateTime​(java.lang.String parameterName, java.sql.Timestamp value)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setSmallDateTime​(java.lang.String parameterName, java.sql.Timestamp value, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setSmallMoney​(java.lang.String parameterName, java.math.BigDecimal value)` Sets the designated parameter to the given Java `java.math.BigDecimal` value.
`void` `setSmallMoney​(java.lang.String parameterName, java.math.BigDecimal value, boolean forceEncrypt)` Sets the designated parameter to the given Java `java.math.BigDecimal` value.
`void` `setString​(java.lang.String parameterName, java.lang.String value, boolean forceEncrypt)` Sets the designated parameter to the given Java `String` value.
`void` `setStructured​(java.lang.String parameterName, java.lang.String tvpName, ISQLServerDataRecord tvpDataRecord)` Populates a table valued parameter passed to a stored procedure with an ISQLServerDataRecord object.
`void` `setStructured​(java.lang.String parameterName, java.lang.String tvpName, SQLServerDataTable tvpDataTable)` Populates a table valued parameter passed to a stored procedure with a data table.
`void` `setStructured​(java.lang.String parameterName, java.lang.String tvpName, java.sql.ResultSet tvpResultSet)` Populates a table valued parameter passed to a stored procedure with a ResultSet retrieved from another table
`void` `setTime​(java.lang.String parameterName, java.sql.Time value, int scale)` Sets the designated parameter to the given `java.sql.Time` value.
`void` `setTime​(java.lang.String parameterName, java.sql.Time value, int scale, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Time` value.
`void` `setTime​(java.lang.String parameterName, java.sql.Time value, java.util.Calendar calendar, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Time` value, using the given `Calendar` object.
`void` `setTimestamp​(java.lang.String parameterName, java.sql.Timestamp value, int scale)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setTimestamp​(java.lang.String parameterName, java.sql.Timestamp value, int scale, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setTimestamp​(java.lang.String parameterName, java.sql.Timestamp value, java.util.Calendar calendar, boolean forceEncrypt)` Sets the designated parameter to the given `java.sql.Timestamp` value.
`void` `setUniqueIdentifier​(java.lang.String parameterName, java.lang.String guid)` Sets the designated parameter to the given `String` value.
`void` `setUniqueIdentifier​(java.lang.String parameterName, java.lang.String guid, boolean forceEncrypt)` Sets the designated parameter to the given `String` value.

### 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, 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, setObject, setObject, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setURL, wasNull`

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

`getParameterMetaData, getPreparedStatementHandle, getUseFmtOnly, setBigDecimal, setBigDecimal, setBoolean, setByte, setBytes, setDate, setDateTime, setDateTime, setDateTimeOffset, setDateTimeOffset, setDateTimeOffset, setDouble, setFloat, setGeography, setGeometry, setInt, setLong, setMoney, setMoney, setNString, setObject, setObject, setObject, setObject, setShort, setSmallDateTime, setSmallDateTime, setSmallMoney, setSmallMoney, setString, setStructured, setStructured, setStructured, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setUniqueIdentifier, setUniqueIdentifier, setUseFmtOnly`

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

`getCancelQueryTimeout, getResponseBuffering, setCancelQueryTimeout, setResponseBuffering`

### 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, setObject, setObject, setRef, setRowId, setShort, setSQLXML, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL`

### 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

#### getBigDecimal

    @Deprecated
    java.math.BigDecimal getBigDecimal​(java.lang.String parameterName,
                                       int scale)
                                throws SQLServerException

Deprecated.
Returns the value of the designated column in the current row of this ResultSet object as a java.sql.BigDecimal object in the Java programming language.

Parameters:
  `parameterName` - the label for the column
  `scale` - the scale of the BigDecimal
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getDateTime

    java.sql.Timestamp getDateTime​(int index)
                            throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `index` - the first column is 1, the second is 2, ...
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getDateTime

    java.sql.Timestamp getDateTime​(java.lang.String parameterName)
                            throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `parameterName` - the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getDateTime

    java.sql.Timestamp getDateTime​(int index,
                                   java.util.Calendar cal)
                            throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

Parameters:
  `index` - the first column is 1, the second is 2, ...
  `cal` - the java.util.Calendar object to use in constructing the dateTime
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getDateTime

    java.sql.Timestamp getDateTime​(java.lang.String name,
                                   java.util.Calendar cal)
                            throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language. This method uses the given calendar to construct an appropriate millisecond value for the timestamp if the underlying database does not store timezone information.

Parameters:
  `name` - the name of the column
  `cal` - the java.util.Calendar object to use in constructing the dateTime
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getSmallDateTime

    java.sql.Timestamp getSmallDateTime​(int index)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `index` - the first column is 1, the second is 2, ...
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getSmallDateTime

    java.sql.Timestamp getSmallDateTime​(java.lang.String parameterName)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `parameterName` - The name of a column.
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getSmallDateTime

    java.sql.Timestamp getSmallDateTime​(int index,
                                        java.util.Calendar cal)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `index` - the first column is 1, the second is 2, ...
  `cal` - the java.util.Calendar object to use in constructing the smalldateTime
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getSmallDateTime

    java.sql.Timestamp getSmallDateTime​(java.lang.String name,
                                        java.util.Calendar cal)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

Parameters:
  `name` - The name of a column
  `cal` - the java.util.Calendar object to use in constructing the smalldateTime
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getDateTimeOffset

    DateTimeOffset getDateTimeOffset​(int parameterIndex)
                              throws SQLServerException

Returns the DateTimeOffset value of parameter with index parameterIndex.

Parameters:
  `parameterIndex` - the first parameter is 1, the second is 2, and so on
Returns:
  DateTimeOffset value if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - if parameterIndex is out of range; if a database access error occurs or this method is called on a closed `CallableStatement`

#### getDateTimeOffset

    DateTimeOffset getDateTimeOffset​(java.lang.String parameterName)
                              throws SQLServerException

Returns the DateTimeOffset value of parameter with name parameterName.

Parameters:
  `parameterName` - the name of the parameter
Returns:
  DateTimeOffset value if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### getAsciiStream

    java.io.InputStream getAsciiStream​(int parameterIndex)
                                throws SQLServerException

Returns the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR` values. The JDBC driver will do any necessary conversion from the database format into ASCII.

Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called whether there is data available or not.

Parameters:
  `parameterIndex` - the first column is 1, the second is 2, ...
Returns:
  a Java input stream that delivers the database column value as a stream of one-byte ASCII characters; if the value is SQL `NULL`, the value returned is `null`
Throws:
  `SQLServerException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

#### getAsciiStream

    java.io.InputStream getAsciiStream​(java.lang.String parameterName)
                                throws SQLServerException

Returns the value of the designated column in the current row of this `ResultSet` object as a stream of ASCII characters. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARCHAR` values. The JDBC driver will do any necessary conversion from the database format into ASCII.

Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `available` is called whether there is data available or not.

Parameters:
  `parameterName` - the name of the parameter
Returns:
  a Java input stream that delivers the database column value as a stream of one-byte ASCII characters. If the value is SQL `NULL`, the value returned is `null`.
Throws:
  `SQLServerException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

#### getMoney

    java.math.BigDecimal getMoney​(int parameterIndex)
                           throws SQLServerException

Returns the value of the column specified as a java.math.BigDecimal object.

Parameters:
  `parameterIndex` - The zero-based ordinal of a column.
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getMoney

    java.math.BigDecimal getMoney​(java.lang.String parameterName)
                           throws SQLServerException

Returns the value of the column specified as a java.math.BigDecimal object.

Parameters:
  `parameterName` - The name of a column.
Returns:
  the column value; if the value is SQL NULL, the value returned is null.
Throws:
  `SQLServerException` - when an error occurs

#### getSmallMoney

    java.math.BigDecimal getSmallMoney​(int parameterIndex)
                                throws SQLServerException

Returns the value of the column specified as a java.math.BigDecimal object.

Parameters:
  `parameterIndex` - The zero-based ordinal of a column.
Returns:
  the column value; if the value is SQL NULL, the value returned is null
Throws:
  `SQLServerException` - when an error occurs

#### getSmallMoney

    java.math.BigDecimal getSmallMoney​(java.lang.String parameterName)
                                throws SQLServerException

Returns the value of the column specified as a java.math.BigDecimal object.

Parameters:
  `parameterName` - The name of a column.
Returns:
  the column value; if the value is SQL NULL, the value returned is null.
Throws:
  `SQLServerException` - when an error occurs

#### getBinaryStream

    java.io.InputStream getBinaryStream​(int parameterIndex)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted bytes. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARBINARY` values.

Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `InputStream.available` is called whether there is data available or not.

Parameters:
  `parameterIndex` - the first column is 1, the second is 2, ...
Returns:
  a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL `NULL`, the value returned is `null`
Throws:
  `SQLServerException` - if the columnIndex is not valid; if a database access error occurs or this method is called on a closed result set

#### getBinaryStream

    java.io.InputStream getBinaryStream​(java.lang.String parameterName)
                                 throws SQLServerException

Returns the value of the designated column in the current row of this `ResultSet` object as a stream of uninterpreted `byte`s. The value can then be read in chunks from the stream. This method is particularly suitable for retrieving large `LONGVARBINARY` values.

Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getter method implicitly closes the stream. Also, a stream may return `0` when the method `available` is called whether there is data available or not.

Parameters:
  `parameterName` - the name of the parameter
Returns:
  a Java input stream that delivers the database column value as a stream of uninterpreted bytes; if the value is SQL `NULL`, the result is `null`
Throws:
  `SQLServerException` - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set

#### setTimestamp

    void setTimestamp​(java.lang.String parameterName,
                      java.sql.Timestamp value,
                      java.util.Calendar calendar,
                      boolean forceEncrypt)
               throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `TIMESTAMP` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `calendar` - a java.util.Calendar
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTimestamp(int)`

#### setTime

    void setTime​(java.lang.String parameterName,
                 java.sql.Time value,
                 java.util.Calendar calendar,
                 boolean forceEncrypt)
          throws SQLServerException

Sets the designated parameter to the given `java.sql.Time` value, using the given `Calendar` object. The driver uses the `Calendar` object to construct an SQL `TIME` value, which the driver then sends to the database. With a a `Calendar` object, the driver can calculate the time taking into account a custom timezone. If no `Calendar` object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `calendar` - the `Calendar` object the driver will use to construct the time
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTime(int)`

#### setDate

    void setDate​(java.lang.String parameterName,
                 java.sql.Date value,
                 java.util.Calendar calendar,
                 boolean forceEncrypt)
          throws SQLServerException

Sets the designated parameter to the given `java.sql.Date` value, using the given `Calendar` object. The driver uses the `Calendar` object to construct an SQL `DATE` value, which the driver then sends to the database. With a a `Calendar` object, the driver can calculate the date taking into account a custom timezone. If no `Calendar` object is specified, the driver uses the default timezone, which is that of the virtual machine running the application.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `calendar` - the `Calendar` object the driver will use to construct the date
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getDate(int)`

#### setNString

    void setNString​(java.lang.String parameterName,
                    java.lang.String value,
                    boolean forceEncrypt)
             throws SQLServerException

Sets the designated parameter to the given `String` object. The driver converts this to a SQL `NCHAR` or `NVARCHAR` or `LONGNVARCHAR`

Parameters:
  `parameterName` - the name of the parameter to be set
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if the driver does not support national character sets; if the driver can detect that a data conversion error could occur; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setObject

    void setObject​(java.lang.String parameterName,
                   java.lang.Object value,
                   int sqlType,
                   int decimals,
                   boolean forceEncrypt)
            throws SQLServerException

Sets the value of the designated parameter with the given object.

The given Java object will be converted to the given targetSqlType before being sent to the database. If the object has a custom mapping (is of a class implementing the interface `SQLData`), the JDBC driver should call the method `SQLData.writeSQL` to write it to the SQL data stream. If, on the other hand, the object is of a class implementing `Ref`, `Blob`, `Clob`, `NClob`, `Struct`, `java.net.URL`, or `Array`, the driver should pass it to the database as a value of the corresponding SQL type.

Note that this method may be used to pass database- specific abstract data types.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the object containing the input parameter value
  `sqlType` - the SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.
  `decimals` - for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, this is the number of digits after the decimal point. For all other types, this value will be ignored.
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `Types`, `CallableStatement.getObject(int)`

#### setObject

    void setObject​(java.lang.String parameterName,
                   java.lang.Object value,
                   int targetSqlType,
                   java.lang.Integer precision,
                   int scale)
            throws SQLServerException

Sets the value of the designated parameter with the given object.

The given Java object will be converted to the given targetSqlType before being sent to the database. If the object has a custom mapping (is of a class implementing the interface `SQLData`), the JDBC driver should call the method `SQLData.writeSQL` to write it to the SQL data stream. If, on the other hand, the object is of a class implementing `Ref`, `Blob`, `Clob`, `NClob`, `Struct`, `java.net.URL`, or `Array`, the driver should pass it to the database as a value of the corresponding SQL type.

Note that this method may be used to pass datatabase- specific abstract data types.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the object containing the input parameter value
  `targetSqlType` - the SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.
  `precision` - the precision of the column.
  `scale` - the scale of the column.
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `Types`, `CallableStatement.getObject(int)`

#### setTimestamp

    void setTimestamp​(java.lang.String parameterName,
                      java.sql.Timestamp value,
                      int scale)
               throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `TIMESTAMP` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `scale` - the scale of the parameter
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTimestamp(int)`

#### setTimestamp

    void setTimestamp​(java.lang.String parameterName,
                      java.sql.Timestamp value,
                      int scale,
                      boolean forceEncrypt)
               throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `TIMESTAMP` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `scale` - the scale of the parameter
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTimestamp(int)`

#### setDateTimeOffset

    void setDateTimeOffset​(java.lang.String parameterName,
                           DateTimeOffset value)
                    throws SQLServerException

Sets parameter parameterName to DateTimeOffset value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - DateTimeOffset value
Throws:
  `SQLServerException` - if an error occurs

#### setDateTimeOffset

    void setDateTimeOffset​(java.lang.String parameterName,
                           DateTimeOffset value,
                           int scale)
                    throws SQLServerException

Sets parameter parameterName to DateTimeOffset value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - DateTimeOffset value
  `scale` - the scale of the parameter
Throws:
  `SQLServerException` - if an error occurs

#### setDateTimeOffset

    void setDateTimeOffset​(java.lang.String parameterName,
                           DateTimeOffset value,
                           int scale,
                           boolean forceEncrypt)
                    throws SQLServerException

Sets parameter parameterName to DateTimeOffset value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - DateTimeOffset value
  `scale` - the scale of the parameter
  `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 an error occurs

#### setTime

    void setTime​(java.lang.String parameterName,
                 java.sql.Time value,
                 int scale)
          throws SQLServerException

Sets the designated parameter to the given `java.sql.Time` value. The driver converts this to an SQL `TIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `scale` - the scale of the column
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTime(int)`

#### setTime

    void setTime​(java.lang.String parameterName,
                 java.sql.Time value,
                 int scale,
                 boolean forceEncrypt)
          throws SQLServerException

Sets the designated parameter to the given `java.sql.Time` value. The driver converts this to an SQL `TIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `CallableStatement.getTime(int)`

#### setDateTime

    void setDateTime​(java.lang.String parameterName,
                     java.sql.Timestamp value)
              throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `DATETIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setDateTime

    void setDateTime​(java.lang.String parameterName,
                     java.sql.Timestamp value,
                     boolean forceEncrypt)
              throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `DATETIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setSmallDateTime

    void setSmallDateTime​(java.lang.String parameterName,
                          java.sql.Timestamp value)
                   throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `SMALLDATETIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setSmallDateTime

    void setSmallDateTime​(java.lang.String parameterName,
                          java.sql.Timestamp value,
                          boolean forceEncrypt)
                   throws SQLServerException

Sets the designated parameter to the given `java.sql.Timestamp` value. The driver converts this to an SQL `SMALLDATETIME` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setUniqueIdentifier

    void setUniqueIdentifier​(java.lang.String parameterName,
                             java.lang.String guid)
                      throws SQLServerException

Sets the designated parameter to the given `String` value. The driver converts this to an SQL `uniqueIdentifier` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `guid` - the parameter value
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setUniqueIdentifier

    void setUniqueIdentifier​(java.lang.String parameterName,
                             java.lang.String guid,
                             boolean forceEncrypt)
                      throws SQLServerException

Sets the designated parameter to the given `String` value. The driver converts this to an SQL `uniqueIdentifier` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `guid` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setBytes

    void setBytes​(java.lang.String parameterName,
                  byte[] value,
                  boolean forceEncrypt)
           throws SQLServerException

Sets the designated parameter to the given Java array of bytes. The driver converts this to an SQL `VARBINARY` or `LONGVARBINARY` (depending on the argument's size relative to the driver's limits on `VARBINARY` values) when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setByte

    void setByte​(java.lang.String parameterName,
                 byte value,
                 boolean forceEncrypt)
          throws SQLServerException

Sets the designated parameter to the given Java `byte` value. The driver converts this to an SQL `TINYINT` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setString

    void setString​(java.lang.String parameterName,
                   java.lang.String value,
                   boolean forceEncrypt)
            throws SQLServerException

Sets the designated parameter to the given Java `String` value. The driver converts this to an SQL `VARCHAR` or `LONGVARCHAR` value (depending on the argument's size relative to the driver's limits on `VARCHAR` values) when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setMoney

    void setMoney​(java.lang.String parameterName,
                  java.math.BigDecimal value)
           throws SQLServerException

Sets the designated parameter to the given Java `java.math.BigDecimal` value. The driver converts this to an SQL `Money` value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setMoney

    void setMoney​(java.lang.String parameterName,
                  java.math.BigDecimal value,
                  boolean forceEncrypt)
           throws SQLServerException

Sets the designated parameter to the given Java `java.math.BigDecimal` value. The driver converts this to an SQL `Money` value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setSmallMoney

    void setSmallMoney​(java.lang.String parameterName,
                       java.math.BigDecimal value)
                throws SQLServerException

Sets the designated parameter to the given Java `java.math.BigDecimal` value. The driver converts this to an SQL `smallMoney` value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setSmallMoney

    void setSmallMoney​(java.lang.String parameterName,
                       java.math.BigDecimal value,
                       boolean forceEncrypt)
                throws SQLServerException

Sets the designated parameter to the given Java `java.math.BigDecimal` value. The driver converts this to an SQL `smallMoney` value.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setBigDecimal

    void setBigDecimal​(java.lang.String parameterName,
                       java.math.BigDecimal value,
                       int precision,
                       int scale)
                throws SQLServerException

Sets the designated parameter to the given `java.math.BigDecimal` value. The driver converts this to an SQL `NUMERIC` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `precision` - the precision of the column
  `scale` - the scale of the column
Throws:
  `SQLServerException` - if parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setBigDecimal

    void setBigDecimal​(java.lang.String parameterName,
                       java.math.BigDecimal value,
                       int precision,
                       int scale,
                       boolean forceEncrypt)
                throws SQLServerException

Sets the designated parameter to the given `java.math.BigDecimal` value. The driver converts this to an SQL `NUMERIC` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setDouble

    void setDouble​(java.lang.String parameterName,
                   double value,
                   boolean forceEncrypt)
            throws SQLServerException

Sets the designated parameter to the given Java `double` value. The driver converts this to an SQL `DOUBLE` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setFloat

    void setFloat​(java.lang.String parameterName,
                  float value,
                  boolean forceEncrypt)
           throws SQLServerException

Sets the designated parameter to the given Java `float` value. The driver converts this to an SQL `FLOAT` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setInt

    void setInt​(java.lang.String parameterName,
                int value,
                boolean forceEncrypt)
         throws SQLServerException

Sets the designated parameter to the given Java `int` value. The driver converts this to an SQL `INTEGER` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setLong

    void setLong​(java.lang.String parameterName,
                 long value,
                 boolean forceEncrypt)
          throws SQLServerException

Sets the designated parameter to the given Java `long` value. The driver converts this to an SQL `BIGINT` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setShort

    void setShort​(java.lang.String parameterName,
                  short value,
                  boolean forceEncrypt)
           throws SQLServerException

Sets the designated parameter to the given Java `short` value. The driver converts this to an SQL `SMALLINT` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setBoolean

    void setBoolean​(java.lang.String parameterName,
                    boolean value,
                    boolean forceEncrypt)
             throws SQLServerException

Sets the designated parameter to the given Java `boolean` value. The driver converts this to an SQL `BIT` or `BOOLEAN` value when it sends it to the database.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the parameter value
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`

#### setStructured

    void setStructured​(java.lang.String parameterName,
                       java.lang.String tvpName,
                       SQLServerDataTable tvpDataTable)
                throws SQLServerException

Populates a table valued parameter passed to a stored procedure with a data table.

Parameters:
  `parameterName` - the name of the parameter
  `tvpName` - the name of the type TVP
  `tvpDataTable` - the data table object
Throws:
  `SQLServerException` - when an error occurs

#### setStructured

    void setStructured​(java.lang.String parameterName,
                       java.lang.String tvpName,
                       java.sql.ResultSet tvpResultSet)
                throws SQLServerException

Populates a table valued parameter passed to a stored procedure with a ResultSet retrieved from another table

Parameters:
  `parameterName` - the name of the parameter
  `tvpName` - the name of the type TVP
  `tvpResultSet` - the source result set object
Throws:
  `SQLServerException` - when an error occurs

#### setStructured

    void setStructured​(java.lang.String parameterName,
                       java.lang.String tvpName,
                       ISQLServerDataRecord tvpDataRecord)
                throws SQLServerException

Populates a table valued parameter passed to a stored procedure with an ISQLServerDataRecord object.

Parameters:
  `parameterName` - the name of the parameter
  `tvpName` - the name of the type TVP
  `tvpDataRecord` - ISQLServerDataRecord is used for streaming data and the user decides how to use it. tvpDataRecord is an ISQLServerDataRecord object.the source result set object
Throws:
  `SQLServerException` - when an error occurs

#### registerOutParameter

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

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.

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

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

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.

Parameters:
  `parameterIndex` - the first column 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.

#### registerOutParameter

    void registerOutParameter​(int parameterIndex,
                              int sqlType,
                              int precision,
                              int scale)
                       throws SQLServerException

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.

Parameters:
  `parameterIndex` - the first column 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.

#### registerOutParameter

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

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.

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.

#### setObject

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

Sets the value of the designated parameter with the given object.

The given Java object will be converted to the given targetSqlType before being sent to the database. If the object has a custom mapping (is of a class implementing the interface `SQLData`), the JDBC driver should call the method `SQLData.writeSQL` to write it to the SQL data stream. If, on the other hand, the object is of a class implementing `Ref`, `Blob`, `Clob`, `NClob`, `Struct`, `java.net.URL`, or `Array`, the driver should pass it to the database as a value of the corresponding SQL type.

Note that this method may be used to pass datatabase- specific abstract data types.

Parameters:
  `parameterName` - the name of the parameter
  `value` - the object containing the input parameter value
  `jdbcType` - the SQL type (as defined in java.sql.Types) to be sent to the database. The scale argument may further qualify this type.
  `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 parameterName does not correspond to a named parameter; if a database access error occurs or this method is called on a closed `CallableStatement`
See Also:
  `Types`, `CallableStatement.getObject(int)`