org.apache.derby.iapi.sql
Interface Statement

All Known Implementing Classes:
GenericStatement

public interface Statement

The Statement interface provides a way of giving a statement to the language module, preparing the statement, and executing it. It also provides some support for stored statements. Simple, non-stored, non-parameterized statements can be executed with the execute() method. Parameterized statements must use prepare(). To get the stored query plan for a statement, use get().

This interface will have different implementations for the execution-only and compile-and-execute versions of the product. In the execution-only version, some of the methods will do nothing but raise exceptions to indicate that they are not implemented.

There is a Statement factory in the Connection interface in the Database module, which uses the one provided in LanguageFactory.


Method Summary
 java.lang.String getSource()
          Return the SQL string that this statement is for.
 PreparedStatement prepare(LanguageConnectionContext lcc)
          Generates an execution plan without executing it.
 PreparedStatement prepare(LanguageConnectionContext lcc, boolean allowInternalSyntax)
          Generates an execution plan without executing it.
 PreparedStatement prepareStorable(LanguageConnectionContext lcc, PreparedStatement ps, java.lang.Object[] paramDefaults, SchemaDescriptor spsSchema, boolean internalSQL)
          Generates an execution plan given a set of named parameters.
 

Method Detail

prepare

PreparedStatement prepare(LanguageConnectionContext lcc)
                          throws StandardException
Generates an execution plan without executing it.

Returns:
A PreparedStatement that allows execution of the execution plan.
Throws:
StandardException - Thrown if this is an execution-only version of the module (the prepare() method relies on compilation).

prepare

PreparedStatement prepare(LanguageConnectionContext lcc,
                          boolean allowInternalSyntax)
                          throws StandardException
Generates an execution plan without executing it.

Parameters:
lcc - the language connection context
allowInternalSyntax - If this statement is for a metadata call then we will allow internal sql syntax on such statement. This internal sql syntax is not available to a user sql statement.
Returns:
A PreparedStatement that allows execution of the execution plan.
Throws:
StandardException - Thrown if this is an execution-only version of the module (the prepare() method relies on compilation).

prepareStorable

PreparedStatement prepareStorable(LanguageConnectionContext lcc,
                                  PreparedStatement ps,
                                  java.lang.Object[] paramDefaults,
                                  SchemaDescriptor spsSchema,
                                  boolean internalSQL)
                                  throws StandardException
Generates an execution plan given a set of named parameters. For generating a storable prepared statement (which has some extensions over a standard prepared statement).

Parameters:
lcc - Compiler state variable.
ps - Prepared statement
paramDefaults - Default parameter values to use for optimization
spsSchema - schema of the stored prepared statement
Returns:
A Storable PreparedStatement that allows execution of the execution plan.
Throws:
StandardException - Thrown if this is an execution-only version of the module (the prepare() method relies on compilation).

getSource

java.lang.String getSource()
Return the SQL string that this statement is for.

Returns:
the SQL string this statement is for.

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.