A SQL statement is pre-compiled and stored in a PreparedStatement object.
This object can then be used to efficiently execute this statement multiple
times.
Note:
The
setXXX
methods for setting IN parameter values
must specify types that are compatible with the defined SQL type of
the input parameter. For instance, if the IN parameter has SQL type
Integer, then the method
XParameters::setInt()
should be used.
If arbitrary parameter type conversions are required, the method
XParameters::setObject()
should be used with a target SQL type.
Example of setting a parameter; con is an active connection.
Example
:StarBASIC
pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?")
pstmt.setDouble(1, 153833.00)
pstmt.setLong(2, 110592)
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 statement's current ResultSet if an open one exists.
could be used for cancelling the execution of SQL statements, if both
the DBMS and the driver support aborting an SQL statement.
The implementation is optional.
(details)
controls the chaining of warnings, which may occur on every call
to the connected database. Chained warnings from previous calls will be
cleared before processing a new call.
retrieves the number of seconds the driver will wait for a Statement
to execute. If the limit is exceeded, a SQLException is thrown.
There is no limitation, if set to zero.
retrieves the maximum number of rows that a ResultSet can contain.
If the limit is exceeded, the excess rows are silently dropped.
There is no limitation, if set to zero.
could be used for cancelling the execution of SQL statements, if both
the DBMS and the driver support aborting an SQL statement.
The implementation is optional.
controls the chaining of warnings, which may occur on every call
to the connected database. Chained warnings from previous calls will be
cleared before processing a new call.
retrieves the number of seconds the driver will wait for a Statement
to execute. If the limit is exceeded, a SQLException is thrown.
There is no limitation, if set to zero.
retrieves the maximum number of rows that a ResultSet can contain.
If the limit is exceeded, the excess rows are silently dropped.
There is no limitation, if set to zero.
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 does not support positioned update/delete, this property is
a noop. To insure that a cursor has the proper isolation level to support
updates, the cursor's SELECT statement should be of the form
'select for update ...'. If the 'for update' phrase is omitted,
positioned updates may fail.
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.