📄 statement.java
字号:
} if (results.reallyResult()) { return -1; } return updateCount; } /** * Sets the maxFieldSize * * @param max the new max column size limit; zero means unlimited * * @exception SQLException if size exceeds buffer size * @throws SQLException DOCUMENT ME! */ public void setMaxFieldSize(int max) throws SQLException { if (Driver.TRACE) { Object[] args = { new Integer(max) }; Debug.methodCall(this, "setMaxFieldSize", args); } if (max < 0) { throw new SQLException("Illegal value for setMaxFieldSize()", SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } int maxBuf = (connection != null) ? connection.getMaxAllowedPacket() : MysqlIO.getMaxBuf(); if (max > maxBuf) { throw new java.sql.SQLException( "Can not set max field size > max allowed packet: " + maxBuf, SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } else { maxFieldSize = max; } } /** * The maxFieldSize limit (in bytes) is the maximum amount of data returned * for any column value; it only applies to BINARY, VARBINARY, * LONGVARBINARY, CHAR, VARCHAR and LONGVARCHAR columns. If the limit is * exceeded, the excess data is silently discarded. * * @return the current max column size limit; zero means unlimited * * @exception java.sql.SQLException if a database access error occurs */ public int getMaxFieldSize() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getMaxFieldSize", args); } return maxFieldSize; } /** * Set the maximum number of rows * * @param max the new max rows limit; zero means unlimited * * @exception java.sql.SQLException if a database access error occurs * * @see getMaxRows */ public void setMaxRows(int max) throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = { new Integer(max) }; Debug.methodCall(this, "setMaxRows", args); } if ((max > MysqlDefs.MAX_ROWS) || (max < 0)) { throw new java.sql.SQLException("setMaxRows() out of range. " + max + " > " + MysqlDefs.MAX_ROWS + ".", SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } if (max == 0) { max = -1; } this.maxRows = max; this.maxRowsChanged = true; if (maxRows == -1) { connection.unsetMaxRows(this); this.maxRowsChanged = false; } else { // Most people don't use setMaxRows() // so don't penalize them // with the extra query it takes // to do it efficiently unless we need // to. connection.maxRowsChanged(this); } } /** * The maxRows limit is set to limit the number of rows that any ResultSet * can contain. If the limit is exceeded, the excess rows are silently * dropped. * * @return the current maximum row limit; zero means unlimited * * @exception java.sql.SQLException if a database access error occurs */ public int getMaxRows() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getMaxRows", args); } if (maxRows <= 0) { return 0; } else { return maxRows; } } /** * getMoreResults moves to a Statement's next result. If it returns true, * this result is a ResulSet. * * @return true if the next ResultSet is valid * * @exception java.sql.SQLException if a database access error occurs */ public boolean getMoreResults() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getMoreResults", args); } return getMoreResults(CLOSE_CURRENT_RESULT); } /** * @see Statement#getMoreResults(int) */ public synchronized boolean getMoreResults(int current) throws SQLException { switch (current) { case Statement.CLOSE_CURRENT_RESULT: if (results != null) { results.close(); } break; case Statement.CLOSE_ALL_RESULTS: if (results != null) { results.close(); } closeAllOpenResults(); break; case Statement.KEEP_CURRENT_RESULT: openResults.add(results); break; default: throw new SQLException("Illegal flag for getMoreResults(int)", SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } results = nextResults; nextResults = null; return ((results != null) && results.reallyResult()) ? true : false; } /** * Sets the queryTimeout limit * * @param seconds - the new query timeout limit in seconds * * @exception SQLException if a database access error occurs */ public void setQueryTimeout(int seconds) throws SQLException { if (Driver.TRACE) { Object[] args = { new Integer(seconds) }; Debug.methodCall(this, "setQueryTimeout", args); } if (seconds < 0) { throw new SQLException("Illegal value for setQueryTimeout()", SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } timeout = seconds; } /** * The queryTimeout limit is the number of seconds the driver will wait for * a Statement to execute. If the limit is exceeded, a * java.sql.SQLException is thrown. * * @return the current query timeout limit in seconds; 0 = unlimited * * @exception java.sql.SQLException if a database access error occurs */ public int getQueryTimeout() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getQueryTimeout", args); } return timeout; } /** * getResultSet returns the current result as a ResultSet. It should only * be called once per result. * * @return the current result set; null if there are no more * * @exception java.sql.SQLException if a database access error occurs * (why?) */ public synchronized java.sql.ResultSet getResultSet() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getResultSet", args); } return ((results != null) && results.reallyResult()) ? (java.sql.ResultSet) results : null; } /** * JDBC 2.0 Determine the result set concurrency. * * @return CONCUR_UPDATABLE or CONCUR_READONLY * * @throws SQLException if an error occurs */ public int getResultSetConcurrency() throws SQLException { return resultSetConcurrency; } /** * @see Statement#getResultSetHoldability() */ public int getResultSetHoldability() throws SQLException { return ResultSet.HOLD_CURSORS_OVER_COMMIT; } /** * JDBC 2.0 Determine the result set type. * * @return the ResultSet type (SCROLL_SENSITIVE or SCROLL_INSENSITIVE) * * @throws SQLException if an error occurs. */ public int getResultSetType() throws SQLException { return resultSetType; } /** * getUpdateCount returns the current result as an update count, if the * result is a ResultSet or there are no more results, -1 is returned. It * should only be called once per result. * * @return the current result as an update count. * * @exception java.sql.SQLException if a database access error occurs */ public synchronized int getUpdateCount() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getUpdateCount", args); } if (results == null) { return -1; } if (results.reallyResult()) { return -1; } int truncatedUpdateCount = 0; if (results.getUpdateCount() > Integer.MAX_VALUE) { truncatedUpdateCount = Integer.MAX_VALUE; } else { truncatedUpdateCount = (int) results.getUpdateCount(); } return truncatedUpdateCount; } /** * The first warning reported by calls on this Statement is returned. A * Statement's execute methods clear its java.sql.SQLWarning chain. * Subsequent Statement warnings will be chained to this * java.sql.SQLWarning. * * <p> * The Warning chain is automatically cleared each time a statement is * (re)executed. * </p> * * <p> * <B>Note:</B> If you are processing a ResultSet then any warnings * associated with ResultSet reads will be chained on the ResultSet * object. * </p> * * @return the first java.sql.SQLWarning on null * * @exception java.sql.SQLException if a database access error occurs */ public synchronized java.sql.SQLWarning getWarnings() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "getWarnings", args); } return warningChain; } /** * DOCUMENT ME! * * @param sql DOCUMENT ME! * * @throws SQLException DOCUMENT ME! */ public synchronized void addBatch(String sql) throws SQLException { if (batchedArgs == null) { batchedArgs = new ArrayList(); } if (sql != null) { batchedArgs.add(sql); } } /** * Cancel can be used by one thread to cancel a statement that is being * executed by another thread. However this driver is synchronous, so * this really has no meaning - we define it as a no-op (i.e. you can't * cancel, but there is no error if you try.) * * @exception java.sql.SQLException only because thats the spec. */ public void cancel() throws java.sql.SQLException { if (Driver.TRACE) { Object[] args = new Object[0]; Debug.methodCall(this, "cancel", args); } // No-op } /** * JDBC 2.0 Make the set of commands in the current batch empty. This * method is optional. * * @exception SQLException if a database-access error occurs, or the driver * does not support batch statements */ public synchronized void clearBatch() throws SQLException { if (batchedArgs != null) { batchedArgs.clear(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -