Class SQLServerStatement

java.lang.Object
com.microsoft.sqlserver.jdbc.SQLServerStatement
All Implemented Interfaces:
ISQLServerStatement, java.io.Serializable, java.lang.AutoCloseable, java.sql.Statement, java.sql.Wrapper
Direct Known Subclasses:
SQLServerPreparedStatement

public class SQLServerStatement
extends java.lang.Object
implements ISQLServerStatement
Provides an implementation of java.sql.Statement JDBC Interface to assist in creating Statements against SQL Server. It also provides a number of base class implementation methods for the JDBC prepared statement and callable Statements. SQLServerStatement's basic role is to execute SQL statements and return update counts and resultset rows to the user application. Documentation for specific public methods that are undocumented can be found under Sun's standard JDBC documentation for class java.sql.Statement. Those methods are part of Sun's standard JDBC documentation and therefore their documentation is not duplicated here.

Implementation Notes

Fetching Result sets

The queries first rowset is available immediately after the executeQuery. The first rs.next() does not make a server round trip. For non server side resultsets the entire result set is in the rowset. For server side result sets the number of rows in the rowset is set with nFetchSize

The API javadoc for JDBC API methods that this class implements are not repeated here. Please see Sun's JDBC API interfaces javadoc for those details.

See Also:
Serialized Form
  • Field Details

  • Method Details

    • getStmtColumnEncriptionSetting

      protected SQLServerStatementColumnEncryptionSetting getStmtColumnEncriptionSetting()
    • toString

      public java.lang.String toString()
      Returns the statement's id for logging info
      Overrides:
      toString in class java.lang.Object
    • close

      public void close() throws SQLServerException
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.sql.Statement
      Throws:
      SQLServerException
    • closeOnCompletion

      public void closeOnCompletion() throws java.sql.SQLException
      Specified by:
      closeOnCompletion in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • executeQuery

      public java.sql.ResultSet executeQuery​(java.lang.String sql) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeQuery in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeUpdate

      public int executeUpdate​(java.lang.String sql) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeLargeUpdate

      public long executeLargeUpdate​(java.lang.String sql) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeLargeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • execute

      public boolean execute​(java.lang.String sql) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      execute in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • getMaxFieldSize

      public final int getMaxFieldSize() throws SQLServerException
      Specified by:
      getMaxFieldSize in interface java.sql.Statement
      Throws:
      SQLServerException
    • setMaxFieldSize

      public final void setMaxFieldSize​(int max) throws SQLServerException
      Specified by:
      setMaxFieldSize in interface java.sql.Statement
      Throws:
      SQLServerException
    • getMaxRows

      public final int getMaxRows() throws SQLServerException
      Specified by:
      getMaxRows in interface java.sql.Statement
      Throws:
      SQLServerException
    • getLargeMaxRows

      public final long getLargeMaxRows() throws SQLServerException
      Specified by:
      getLargeMaxRows in interface java.sql.Statement
      Throws:
      SQLServerException
    • setMaxRows

      public final void setMaxRows​(int max) throws SQLServerException
      Specified by:
      setMaxRows in interface java.sql.Statement
      Throws:
      SQLServerException
    • setLargeMaxRows

      public final void setLargeMaxRows​(long max) throws SQLServerException
      Specified by:
      setLargeMaxRows in interface java.sql.Statement
      Throws:
      SQLServerException
    • setEscapeProcessing

      public final void setEscapeProcessing​(boolean enable) throws SQLServerException
      Specified by:
      setEscapeProcessing in interface java.sql.Statement
      Throws:
      SQLServerException
    • getQueryTimeout

      public final int getQueryTimeout() throws SQLServerException
      Specified by:
      getQueryTimeout in interface java.sql.Statement
      Throws:
      SQLServerException
    • setQueryTimeout

      public final void setQueryTimeout​(int seconds) throws SQLServerException
      Specified by:
      setQueryTimeout in interface java.sql.Statement
      Throws:
      SQLServerException
    • getCancelQueryTimeout

      public final int getCancelQueryTimeout() throws SQLServerException
      Description copied from interface: ISQLServerStatement
      Returns the cancelQueryTimeout property set on this SQLServerStatement object.
      Specified by:
      getCancelQueryTimeout in interface ISQLServerStatement
      Returns:
      cancelQueryTimeout Time duration in seconds.
      Throws:
      SQLServerException - if any error occurs
    • setCancelQueryTimeout

      public final void setCancelQueryTimeout​(int seconds) throws SQLServerException
      Description copied from interface: ISQLServerStatement
      Sets the cancelQueryTimeout property on this SQLServerStatement object to cancel queryTimeout set on Connection or Statement level.
      Specified by:
      setCancelQueryTimeout in interface ISQLServerStatement
      Parameters:
      seconds - Time duration in seconds.
      Throws:
      SQLServerException - if any error occurs
    • cancel

      public final void cancel() throws SQLServerException
      Specified by:
      cancel in interface java.sql.Statement
      Throws:
      SQLServerException
    • getWarnings

      public final java.sql.SQLWarning getWarnings() throws SQLServerException
      Specified by:
      getWarnings in interface java.sql.Statement
      Throws:
      SQLServerException
    • clearWarnings

      public final void clearWarnings() throws SQLServerException
      Specified by:
      clearWarnings in interface java.sql.Statement
      Throws:
      SQLServerException
    • setCursorName

      public final void setCursorName​(java.lang.String name) throws SQLServerException
      Specified by:
      setCursorName in interface java.sql.Statement
      Throws:
      SQLServerException
    • getResultSet

      public final java.sql.ResultSet getResultSet() throws SQLServerException
      Specified by:
      getResultSet in interface java.sql.Statement
      Throws:
      SQLServerException
    • getUpdateCount

      public final int getUpdateCount() throws SQLServerException
      Specified by:
      getUpdateCount in interface java.sql.Statement
      Throws:
      SQLServerException
    • getLargeUpdateCount

      public final long getLargeUpdateCount() throws SQLServerException
      Specified by:
      getLargeUpdateCount in interface java.sql.Statement
      Throws:
      SQLServerException
    • getMoreResults

      public final boolean getMoreResults() throws SQLServerException
      Returns more results in the TDS stream.
      Specified by:
      getMoreResults in interface java.sql.Statement
      Returns:
      true if the next result is a ResultSet object; false if it is an integer (indicating that it is an update count or there are no more results).
      Throws:
      SQLServerException
    • setFetchDirection

      public final void setFetchDirection​(int nDir) throws SQLServerException
      Specified by:
      setFetchDirection in interface java.sql.Statement
      Throws:
      SQLServerException
    • getFetchDirection

      public final int getFetchDirection() throws SQLServerException
      Specified by:
      getFetchDirection in interface java.sql.Statement
      Throws:
      SQLServerException
    • setFetchSize

      public final void setFetchSize​(int rows) throws SQLServerException
      Specified by:
      setFetchSize in interface java.sql.Statement
      Throws:
      SQLServerException
    • getFetchSize

      public final int getFetchSize() throws SQLServerException
      Specified by:
      getFetchSize in interface java.sql.Statement
      Throws:
      SQLServerException
    • getResultSetConcurrency

      public final int getResultSetConcurrency() throws SQLServerException
      Specified by:
      getResultSetConcurrency in interface java.sql.Statement
      Throws:
      SQLServerException
    • getResultSetType

      public final int getResultSetType() throws SQLServerException
      Specified by:
      getResultSetType in interface java.sql.Statement
      Throws:
      SQLServerException
    • addBatch

      public void addBatch​(java.lang.String sql) throws SQLServerException
      Specified by:
      addBatch in interface java.sql.Statement
      Throws:
      SQLServerException
    • clearBatch

      public void clearBatch() throws SQLServerException
      Specified by:
      clearBatch in interface java.sql.Statement
      Throws:
      SQLServerException
    • executeBatch

      public int[] executeBatch() throws SQLServerException, java.sql.BatchUpdateException, java.sql.SQLTimeoutException
      Sends a batch of statements to the database.
      Specified by:
      executeBatch in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.BatchUpdateException
      java.sql.SQLTimeoutException
    • executeLargeBatch

      public long[] executeLargeBatch() throws SQLServerException, java.sql.BatchUpdateException, java.sql.SQLTimeoutException
      Specified by:
      executeLargeBatch in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.BatchUpdateException
      java.sql.SQLTimeoutException
    • getConnection

      public final java.sql.Connection getConnection() throws SQLServerException
      Returns the statement's connection.
      Specified by:
      getConnection in interface java.sql.Statement
      Returns:
      the connection
      Throws:
      SQLServerException - when an error occurs
    • getResultSetHoldability

      public final int getResultSetHoldability() throws java.sql.SQLException
      Specified by:
      getResultSetHoldability in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • execute

      public final boolean execute​(java.lang.String sql, int autoGeneratedKeys) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      execute in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • execute

      public final boolean execute​(java.lang.String sql, int[] columnIndexes) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      execute in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • execute

      public final boolean execute​(java.lang.String sql, java.lang.String[] columnNames) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      execute in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeUpdate

      public final int executeUpdate​(java.lang.String sql, int autoGeneratedKeys) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeLargeUpdate

      public final long executeLargeUpdate​(java.lang.String sql, int autoGeneratedKeys) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeLargeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeUpdate

      public final int executeUpdate​(java.lang.String sql, int[] columnIndexes) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeLargeUpdate

      public final long executeLargeUpdate​(java.lang.String sql, int[] columnIndexes) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeLargeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeUpdate

      public final int executeUpdate​(java.lang.String sql, java.lang.String[] columnNames) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • executeLargeUpdate

      public final long executeLargeUpdate​(java.lang.String sql, java.lang.String[] columnNames) throws SQLServerException, java.sql.SQLTimeoutException
      Specified by:
      executeLargeUpdate in interface java.sql.Statement
      Throws:
      SQLServerException
      java.sql.SQLTimeoutException
    • getGeneratedKeys

      public final java.sql.ResultSet getGeneratedKeys() throws SQLServerException
      Specified by:
      getGeneratedKeys in interface java.sql.Statement
      Throws:
      SQLServerException
    • getMoreResults

      public final boolean getMoreResults​(int mode) throws java.sql.SQLException
      Specified by:
      getMoreResults in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • isClosed

      public boolean isClosed() throws java.sql.SQLException
      Specified by:
      isClosed in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • isCloseOnCompletion

      public boolean isCloseOnCompletion() throws java.sql.SQLException
      Specified by:
      isCloseOnCompletion in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • isPoolable

      public boolean isPoolable() throws java.sql.SQLException
      Specified by:
      isPoolable in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • setPoolable

      public void setPoolable​(boolean poolable) throws java.sql.SQLException
      Specified by:
      setPoolable in interface java.sql.Statement
      Throws:
      java.sql.SQLException
    • isWrapperFor

      public boolean isWrapperFor​(java.lang.Class<?> iface) throws java.sql.SQLException
      Specified by:
      isWrapperFor in interface java.sql.Wrapper
      Throws:
      java.sql.SQLException
    • unwrap

      public <T> T unwrap​(java.lang.Class<T> iface) throws java.sql.SQLException
      Specified by:
      unwrap in interface java.sql.Wrapper
      Throws:
      java.sql.SQLException
    • setResponseBuffering

      public final void setResponseBuffering​(java.lang.String value) throws SQLServerException
      Description copied from interface: ISQLServerStatement
      Sets the response buffering mode for this SQLServerStatement object to case-insensitive String full or adaptive.

      Response buffering controls the driver's buffering of responses from SQL Server.

      Possible values are:

      "full" - Fully buffer the response at execution time.

      "adaptive" - Data Pipe adaptive buffering

      Specified by:
      setResponseBuffering in interface ISQLServerStatement
      Parameters:
      value - A String that contains the response buffering mode. The valid mode can be one of the following case-insensitive Strings: full or adaptive.
      Throws:
      SQLServerException - If there are any errors in setting the response buffering mode.
    • getResponseBuffering

      public final java.lang.String getResponseBuffering() throws SQLServerException
      Description copied from interface: ISQLServerStatement
      Returns the response buffering mode for this SQLServerStatement object.
      Specified by:
      getResponseBuffering in interface ISQLServerStatement
      Returns:
      A String that contains a lower-case full or adaptive.
      Throws:
      SQLServerException - If there are any errors in retrieving the response buffering mode.