1f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License.  You may obtain a copy of the License at
8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.sql;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Interface used for executing static SQL statements to retrieve query results.
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The resulting table rows are returned as {@code ResultSet}s. For any given
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Statement} object, only one {@code ResultSet} can be opened at one
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * time. A call to any of the execution methods of {@code Statement} will cause
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * any previously created {@code ResultSet} object for that {@code Statement} to
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * be closed implicitly.
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * To have multiple {@code ResultSet} objects opened concurrently, multiple
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Statement} objects must be created and then executed.
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * To obtain such an executable statement one needs to invoke {@code
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Connection#createStatement}.
33142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson *
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see ResultSet
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Connection#createStatement
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
37464e162688553b8b6c71499ba28a7967f81092adJesse Wilsonpublic interface Statement extends Wrapper, AutoCloseable {
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Passing this constant to {@link #getMoreResults} implies that all {@code
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet} objects previously kept open should be closed.
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int CLOSE_ALL_RESULTS = 3;
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Passing this constant to {@link #getMoreResults} implies that the current
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code ResultSet} object should be closed.
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int CLOSE_CURRENT_RESULT = 1;
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Indicates that an error was encountered during execution of a batch
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * statement.
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int EXECUTE_FAILED = -3;
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Passing this constant to <i>getMoreResults</i> implies that the current
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code ResultSet} object should not be closed.
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int KEEP_CURRENT_RESULT = 2;
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Indicates that generated keys should not be accessible for retrieval.
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int NO_GENERATED_KEYS = 2;
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Indicates that generated keys should be accessible for retrieval.
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int RETURN_GENERATED_KEYS = 1;
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Indicates that a batch statement was executed with a successful result,
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * but a count of the number of rows it affected is unavailable.
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public static final int SUCCESS_NO_INFO = -2;
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adds a specified SQL command to the list of commands for this {@code
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Statement}.
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The list of commands is executed by invoking the {@code executeBatch}
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * method.
85142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the SQL command as a String. Typically an {@code INSERT} or
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            {@code UPDATE} statement.
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or the database
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             does not support batch updates.
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void addBatch(String sql) throws SQLException;
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Cancels this statement's execution if both the database and the JDBC
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * driver support aborting an SQL statement in flight. This method can be
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * used by one thread to stop a statement that is executed on another
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * thread.
100f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void cancel() throws SQLException;
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Clears the current list of SQL commands for this statement.
108f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or the database
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             does not support batch updates.
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void clearBatch() throws SQLException;
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Clears all {@code SQLWarnings} from this statement.
117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void clearWarnings() throws SQLException;
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Releases this statement's database and JDBC driver resources.
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Using this method to release these resources as soon as possible is
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * strongly recommended.
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * One should not rely on the resources being automatically released when
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * finalized during garbage collection. Doing so can result in unpredictable
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * behavior for the application.
132142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void close() throws SQLException;
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes a supplied SQL statement. This may return multiple {@code
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet}s.
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Use the {@code getResultSet} or {@code getUpdateCount} methods to get the
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * first result and {@code getMoreResults} to get any subsequent results.
144142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the SQL statement to execute
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the first result is a {@code ResultSet}, {@code
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         false} if the first result is an update count or if there is no
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         result.
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean execute(String sql) throws SQLException;
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes a supplied SQL statement. This may return multiple {@code
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet}s. This method allows control of whether auto-generated Keys
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * should be made available for retrieval, if the SQL statement is an
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code INSERT} statement.
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Use the {@code getResultSet} or {@code getUpdateCount} methods to get the
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * first result and {@code getMoreResults} to get any subsequent results.
163142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the SQL statement to execute.
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param autoGeneratedKeys
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            a flag indicating whether to make auto generated keys
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            available for retrieval. This parameter must be one of {@code
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.NO_GENERATED_KEYS} or {@code
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.RETURN_GENERATED_KEYS}.
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if results exists and the first result is a {@code
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         ResultSet}, {@code false} if the first result is an update count
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         or if there is no result.
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean execute(String sql, int autoGeneratedKeys)
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws SQLException;
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. This may return multiple {@code
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet}s. This method allows retrieval of auto generated keys
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * specified by the supplied array of column indexes, if the SQL statement
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is an {@code INSERT} statement.
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Use the {@code getResultSet} or {@code getUpdateCount} methods to get the
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * first result and {@code getMoreResults} to get any subsequent results.
188142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the SQL statement to execute.
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param columnIndexes
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an array of indexes of the columns in the inserted row which
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            should be made available for retrieval via the {@code
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            getGeneratedKeys} method.
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the first result is a {@code ResultSet}, {@code
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         false} if the first result is an update count or if there is no
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         result.
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean execute(String sql, int[] columnIndexes) throws SQLException;
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. This may return multiple {@code
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet}s. This method allows retrieval of auto generated keys
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * specified by the supplied array of column indexes, if the SQL statement
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * is an {@code INSERT} statement.
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Use the {@code getResultSet} or {@code getUpdateCount} methods to get the
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * first result and {@code getMoreResults} to get any subsequent results.
211142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the SQL statement to execute.
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param columnNames
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an array of column names in the inserted row which should be
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            made available for retrieval via the {@code getGeneratedKeys}
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            method.
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the first result is a {@code ResultSet}, {@code
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         false} if the first result is an update count or if there is no
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         result
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean execute(String sql, String[] columnNames)
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws SQLException;
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Submits a batch of SQL commands to the database. Returns an array of
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * update counts, if all the commands execute successfully.
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * If one of the commands in the batch fails, this method can throw a
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@link BatchUpdateException} and the JDBC driver may or may not process
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the remaining commands. The JDBC driver must behave consistently with the
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * underlying database, following the "all or nothing" principle. If the
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * driver continues processing, the array of results returned contains the
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * same number of elements as there are commands in the batch, with a
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * minimum of one of the elements having the {@code EXECUTE_FAILED} value.
238f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return an array of update counts, with one entry for each command in the
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         batch. The elements are ordered according to the order in which
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         the commands were added to the batch.
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <p>
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <ol>
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>If the value of an element is &ge; 0, the corresponding
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         command completed successfully and the value is the <i>update
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         count</i> (the number of rows in the database affected by the
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         command) for that command.</li>
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>If the value is {@code SUCCESS_NO_INFO}, the command
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         completed successfully but the number of rows affected is
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         unknown.
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>If the value is {@code EXECUTE_FAILED}, the command failed.
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         </ol>
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int[] executeBatch() throws SQLException;
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes a supplied SQL statement. Returns a single {@code ResultSet}.
261f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an SQL statement to execute. Typically a {@code SELECT}
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            statement
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return a {@code ResultSet} containing the data produced by the SQL
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         statement. Never null.
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if the statement
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             produces anything other than a single {@code ResultSet}.
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public ResultSet executeQuery(String sql) throws SQLException;
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. The statement may be an {@code
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * INSERT}, {@code UPDATE} or {@code DELETE} statement or a statement which
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * returns nothing.
277f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an SQL statement to execute - an SQL {@code INSERT}, {@code
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            UPDATE}, {@code DELETE} or a statement which returns nothing
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the count of updated rows, or 0 for a statement that returns
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         nothing.
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if the statement
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             produces a {@code ResultSet}.
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int executeUpdate(String sql) throws SQLException;
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. This method allows control of
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * whether auto-generated Keys should be made available for retrieval.
292f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an SQL statement to execute - an SQL {@code INSERT}, {@code
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            UPDATE}, {@code DELETE} or a statement which does not return
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            anything.
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param autoGeneratedKeys
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            a flag that indicates whether to allow retrieval of auto
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            generated keys. Parameter must be one of {@code
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.RETURN_GENERATED_KEYS} or {@code
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.NO_GENERATED_KEYS}
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the number of updated rows, or 0 if the statement returns
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         nothing.
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if the statement
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             produces a {@code ResultSet}.
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int executeUpdate(String sql, int autoGeneratedKeys)
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws SQLException;
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. This method allows retrieval of auto
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * generated keys specified by the supplied array of column indexes.
314f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an SQL statement to execute - an SQL {@code INSERT}, {@code
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            UPDATE}, {@code DELETE} or a statement which returns nothing
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param columnIndexes
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an array of indexes of the columns in the inserted row which
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            should be made available for retrieval via the {@code
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            getGeneratedKeys} method.
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the count of updated rows, or 0 for a statement that returns
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         nothing.
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if the statement
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             produces a {@code ResultSet}.
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int executeUpdate(String sql, int[] columnIndexes)
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws SQLException;
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Executes the supplied SQL statement. This method allows retrieval of auto
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * generated keys specified by the supplied array of column names.
334f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param sql
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an SQL statement to execute - an SQL {@code INSERT}, {@code
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            UPDATE}, {@code DELETE} or a statement which returns nothing
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param columnNames
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            an array of column names in the inserted row which should be
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            made available for retrieval via the {@code getGeneratedKeys}
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            method.
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the count of updated rows, or 0 for a statement that returns
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         nothing.
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if the statement
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             produces a {@code ResultSet}.
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int executeUpdate(String sql, String[] columnNames)
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throws SQLException;
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the {@code Connection} object which created this statement.
353f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the {@code Connection} through which this statement is
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         transmitted to the database.
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public Connection getConnection() throws SQLException;
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the default direction for fetching rows for {@code ResultSet}s
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * generated from this statement.
364f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the default fetch direction, one of:
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <ul>
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>ResultSet.FETCH_FORWARD</li> <li>ResultSet.FETCH_REVERSE</li>
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         <li>ResultSet.FETCH_UNKNOWN</li>
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         </ul>
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getFetchDirection() throws SQLException;
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the default number of rows for a fetch for the {@code ResultSet}
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * objects returned from this statement.
378f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the default fetch size for {@code ResultSet}s produced by this
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         statement.
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getFetchSize() throws SQLException;
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Returns auto generated keys created by executing this statement.
388f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return a {@code ResultSet} containing the auto generated keys - empty if
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         no keys are generated by this statement.
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public ResultSet getGeneratedKeys() throws SQLException;
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the maximum number of bytes which can be returned as values from
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * character and binary type columns in a {@code ResultSet} derived from this
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * statement. This limit applies to {@code BINARY}, {@code VARBINARY},
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code LONGVARBINARY}, {@code CHAR}, {@code VARCHAR}, and {@code
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * LONGVARCHAR} types. Any data exceeding the maximum size is abandoned
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * without announcement.
403f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the current size limit, where {@code 0} means that there is no
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         limit.
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getMaxFieldSize() throws SQLException;
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the maximum number of rows that a {@code ResultSet} can contain when
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * produced from this statement. If the limit is exceeded, the excess rows
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * are discarded silently.
415f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the current row limit, where {@code 0} means that there is no
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         limit.
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getMaxRows() throws SQLException;
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Moves to this statement's next result. Returns {@code true} if it is a
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code ResultSet}. Any current {@code ResultSet} objects previously
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * obtained with {@code getResultSet()} are closed implicitly.
427f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the next result is a {@code ResultSet}, {@code
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         false} if the next result is not a {@code ResultSet} or if there
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         are no more results. Note that if there is no more data, this
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         method will return {@code false} and {@code getUpdateCount} will
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         return -1.
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean getMoreResults() throws SQLException;
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Moves to this statement's next result. Returns {@code true} if the next
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * result is a {@code ResultSet}. Any current {@code ResultSet} objects
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * previously obtained with {@code getResultSet()} are handled as indicated
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * by a supplied Flag parameter.
443f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param current
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            a flag indicating what to do with existing {@code ResultSet}s.
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            This parameter must be one of {@code
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.CLOSE_ALL_RESULTS}, {@code
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.CLOSE_CURRENT_RESULT} or {@code
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            Statement.KEEP_CURRENT_RESULT}.
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code true} if the next result exists and is a {@code ResultSet}
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         , {@code false} if the next result is not a {@code ResultSet} or
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         if there are no more results. Note that if there is no more data,
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         this method will return {@code false} and {@code getUpdateCount}
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         will return -1.
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public boolean getMoreResults(int current) throws SQLException;
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the timeout value for the statement's execution time. The JDBC
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * driver will wait up to this value for the execution to complete - after
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * the limit is exceeded an SQL {@code Exception} is thrown.
464f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the current query timeout value, where {@code 0} indicates that
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         there is no current timeout.
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getQueryTimeout() throws SQLException;
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the current result. Should only be called once per result.
474f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the {@code ResultSet} for the current result. {@code null} if the
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         result is an update count or if there are no more results.
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public ResultSet getResultSet() throws SQLException;
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the concurrency setting for {@code ResultSet} objects generated by
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * this statement.
485f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code ResultSet.CONCUR_READ_ONLY} or {@code
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         ResultSet.CONCUR_UPDATABLE}.
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getResultSetConcurrency() throws SQLException;
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the cursor hold setting for {@code ResultSet} objects generated by
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * this statement.
496f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code ResultSet.HOLD_CURSORS_OVER_COMMIT} or {@code
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         ResultSet.CLOSE_CURSORS_AT_COMMIT}
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if there is an error while accessing the database.
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getResultSetHoldability() throws SQLException;
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the {@code ResultSet} type setting for {@code ResultSet}s derived
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * from this statement.
507f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return {@code ResultSet.TYPE_FORWARD_ONLY} for a {@code ResultSet} where
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         the cursor can only move forwards, {@code
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         ResultSet.TYPE_SCROLL_INSENSITIVE} for a {@code ResultSet} which
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         is scrollable but is not sensitive to changes made by others,
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         {@code ResultSet.TYPE_SCROLL_SENSITIVE} for a {@code ResultSet}
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         which is scrollable but is sensitive to changes made by others.
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if there is an error accessing the database.
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getResultSetType() throws SQLException;
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets an update count for the current result if it is not a {@code
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet}.
522f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the current result as an update count. {@code -1} if the current
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *         result is a {@code ResultSet} or if there are no more results.
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getUpdateCount() throws SQLException;
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Retrieves the first {@code SQLWarning} reported by calls on this
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * statement. If there are multiple warnings, subsequent warnings are
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * chained to the first one. The chain of warnings is cleared each time the
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * statement is executed.
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Warnings associated with reads from the {@code ResultSet} returned from
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * executing the statement will be attached to the {@code ResultSet}, not the
538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * statement object.
539142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return an SQLWarning, null if there are no warnings
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public SQLWarning getWarnings() throws SQLException;
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the SQL cursor name. This name is used by subsequent statement
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * execute methods.
549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Cursor names must be unique within one Connection.
551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * With the cursor name set, it can then be used in SQL positioned
553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * update or delete statements to determine the current row in a {@code
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * ResultSet} generated from this statement. The positioned update or delete
555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * must be done with a different statement than this one.
556142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param name
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the Cursor name as a string,
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setCursorName(String name) throws SQLException;
563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets Escape Processing mode.
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * If Escape Processing is on, the JDBC driver will do escape substitution
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * on an SQL statement before sending it for execution. This does not apply
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * to {@link PreparedStatement}s since they are processed when created,
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * before this method can be called.
571142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson     *
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param enable
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            {@code true} to set escape processing mode <i>on</i>, {@code
574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            false} to turn it <i>off</i>.
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database.
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setEscapeProcessing(boolean enable) throws SQLException;
579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the fetch direction - a hint to the JDBC driver about the direction
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * of processing of rows in {@code ResultSet}s created by this statement.
583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The default fetch direction is {@code FETCH_FORWARD}.
584f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param direction
586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            which fetch direction to use. This parameter should be one of
587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            <ul>
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            <li>{@code ResultSet.FETCH_UNKNOWN}</li>
589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            <li>{@code ResultSet.FETCH_FORWARD}</li>
590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            <li>{@code ResultSet.FETCH_REVERSE}</li>
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            </ul>
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if there is an error while accessing the database or if the
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             fetch direction is unrecognized.
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setFetchDirection(int direction) throws SQLException;
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the fetch size. This is a hint to the JDBC driver about how many
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * rows should be fetched from the database when more are required by
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * application processing.
602f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param rows
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the number of rows that should be fetched. {@code 0} tells the driver
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            to ignore the hint. Should be less than {@code getMaxRows} for
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            this statement. Should not be negative.
607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database, or if the rows
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             parameter is out of range.
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setFetchSize(int rows) throws SQLException;
612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the maximum number of bytes for {@code ResultSet} columns that
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * contain character or binary values. This applies to {@code BINARY},
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * {@code VARBINARY}, {@code LONGVARBINARY}, {@code CHAR}, {@code VARCHAR},
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * and {@code LONGVARCHAR} fields. Any data exceeding the maximum size is
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * abandoned without announcement.
619f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param max
621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the maximum field size in bytes. {@code 0} means "no limit".
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or the {@code max}
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             value is &lt; {@code 0}.
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setMaxFieldSize(int max) throws SQLException;
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the maximum number of rows that any {@code ResultSet} can contain.
630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * If the number of rows exceeds this value, the additional rows are
631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * silently discarded.
632f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param max
634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the maximum number of rows. {@code 0} means "no limit".
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if max < {@code
637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             0}.
638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setMaxRows(int max) throws SQLException;
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Sets the timeout, in seconds, for queries - how long the driver will
643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * allow for completion of a statement execution. If the timeout is
644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * exceeded, the query will throw an {@code SQLException}.
645f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param seconds
647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            timeout in seconds. 0 means no timeout ("wait forever")
648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws SQLException
649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             if an error occurs accessing the database or if seconds <
650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             {@code 0}.
651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setQueryTimeout(int seconds) throws SQLException;
65336b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe
65436b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe    /**
655f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     * Returns true if this statement has been closed, false otherwise.
65636b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe     */
65736b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe    public boolean isClosed() throws SQLException;
65836b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe
659f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes    /**
660f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     * Hints whether this statement should be pooled. Defaults to false for {@code Statement},
661f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     * but true for {@code CallableStatement} and {@code PreparedStatement}. Pool manager
662f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     * implementations may or may not honor this hint.
663f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     */
66436b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe    public void setPoolable(boolean poolable) throws SQLException;
66536b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe
666f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes    /**
667f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     * Returns true if this statement is poolable, false otherwise.
668f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes     */
66936b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe    public boolean isPoolable() throws SQLException;
670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
671