Class 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
    • Method Detail

      • 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
      • setMaxFieldSize

        public final void setMaxFieldSize​(int max)
                                   throws SQLServerException
        Specified by:
        setMaxFieldSize 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
      • setQueryTimeout

        public final void setQueryTimeout​(int seconds)
                                   throws SQLServerException
        Specified by:
        setQueryTimeout 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
      • 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
      • getResultSetConcurrency

        public final int getResultSetConcurrency()
                                          throws SQLServerException
        Specified by:
        getResultSetConcurrency 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.