A Statement object is used for executing a static SQL statement
and obtaining the results produced by it.
Only one ResultSet per Statement can be open at any point in
time. Therefore, if the reading of one ResultSet is interleaved
with the reading of another, each must have been generated by
different Statements. All statement execute methods implicitly
close a statment's current ResultSet if an open one exists.
In many cases, it is desirable to immediately release a
Statements's database and JDBC resources instead of waiting for
this to happen when it is automatically closed; the close
method provides this immediate release.
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.
The maxFieldSize limit (in bytes) is set to limit the size of
data that can be returned for any column value; it only applies
to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and
LONGVARCHAR fields.
In many cases, it is desirable to immediately release a
Statements's database and JDBC resources instead of waiting for
this to happen when it is automatically closed; the close
method provides this immediate release.
Note: A Statement is automatically closed when it is
garbage collected. When a Statement is closed, its current
ResultSet, if one exists, is also closed.
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.
Returns:
the current max column size limit; zero means unlimited
The maxFieldSize limit (in bytes) is set to limit the size of
data that can be returned for any column value; it only applies
to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and
LONGVARCHAR fields. If the limit is exceeded, the excess data
is silently discarded. For maximum portability use values
greater than 256.
Parameters:
max - the new max column size limit; zero means unlimited
If escape scanning is on (the default), the driver will do
escape substitution before sending the SQL to the database.
Note: Since prepared statements have usually been parsed prior
to making this call, disabling escape processing for prepared
statements will like have no affect.
The first warning reported by calls on this Statement is
returned. A Statment's execute methods clear its SQLWarning
chain. Subsequent Statement warnings will be chained to this
SQLWarning.
The warning chain is automatically cleared each time
a statement is (re)executed.
Note: If you are processing a ResultSet then any
warnings associated with ResultSet reads will be chained on the
ResultSet object.
setCursorname defines the SQL cursor name that will be used by
subsequent Statement execute methods. This name can then be
used in SQL positioned update/delete statements to identify the
current row in the ResultSet generated by this statement. If
the database doesn't support positioned update/delete, this
method is a noop.
Note: By definition, positioned update/delete
execution must be done by a different Statement than the one
which generated the ResultSet being used for positioning. Also,
cursor names must be unique within a Connection.
Execute a SQL statement that may return multiple results.
Under some (uncommon) situations a single SQL statement may return
multiple result sets and/or update counts. Normally you can ignore
this, unless you're executing a stored procedure that you know may
return multiple results, or unless you're dynamically executing an
unknown SQL string. The "execute", "getMoreResults", "getResultSet"
and "getUpdateCount" methods let you navigate through multiple results.
The "execute" method executes a SQL statement and indicates the
form of the first result. You can then use getResultSet or
getUpdateCount to retrieve the result, and getMoreResults to
move to any subsequent result(s).
Parameters:
sql - any SQL statement
Returns:
true if the next result is a ResultSet; false if it is
an update count or there are no more results
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.
Returns:
the current result as an update count; -1 if it is a
ResultSet or there are no more results
getMoreResults moves to a Statement's next result. It returns true if
this result is a ResultSet. getMoreResults also implicitly
closes any current ResultSet obtained with getResultSet.
There are no more results when (!getMoreResults() &&
(getUpdateCount() == -1)
Returns:
true if the next result is a ResultSet; false if it is
an update count or there are no more results