01: package net.sourceforge.squirrel_sql.client.session;
02:
03: /*
04: * Copyright (C) 2003-2004 Jason Height
05: * jmheight@users.sourceforge.net
06: *
07: * This library is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License as published by the Free Software Foundation; either
10: * version 2.1 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, write to the Free Software
19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: */
21: import java.sql.ResultSet;
22: import java.sql.SQLWarning;
23:
24: import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
25: import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel;
26:
27: /**
28: * This interface is the call back interface used during execution
29: * of SQl via the SQLExecuter
30: *
31: * @author <A HREF="mailto:jmheight@users.sourceforge.net">Jason Height</A>
32: */
33: public interface ISQLExecuterHandler {
34: /**
35: * Called just prior to the sql being executed
36: * <p/> This event is fired once for each sql statement that is executed.
37: * It signals the start of a new sql execution.
38: * <p/>This callback is called from the thread that the SQLExecuter is running on.
39: * It may or may not be the Swing thread so card should be taken with any gui actions
40: */
41: public void sqlToBeExecuted(String sql);
42:
43: /** Called if another thread cancels the sql execution
44: * <p/>This callback is called from the thread that the SQLExecuter is running on.
45: * It may or may not be the Swing thread so card should be taken with any gui actions
46: * It is called AFTER the SQLExecutor has cancelled out its execution.
47: */
48: public void sqlExecutionCancelled();
49:
50: /** Called if the execution of the sql caused data to be updated.
51: * <p/>The updateCount can be 0 especially when the database structure changed
52: * or the update count is not supported by the database.
53: * <p/>This callback is called from the thread that the SQLExecuter is running on.
54: * It may or may not be the Swing thread so card should be taken with any gui actions
55: */
56: public void sqlDataUpdated(int updateCount);
57:
58: /** Called when the execution of the sql caused data to be returned.
59: * <p/>This can fire multiple times if there are multiple result sets.
60: * <p/>This callback is called from the thread that the SQLExecuter is running on.
61: * It may or may not be the Swing thread so card should be taken with any gui actions
62: */
63: public void sqlResultSetAvailable(ResultSet rst,
64: SQLExecutionInfo info, IDataSetUpdateableTableModel model)
65: throws DataSetException;
66:
67: /** Called when the SQLExecutor succesfully completes execution of a sql
68: * statement.
69: */
70: public void sqlExecutionComplete(SQLExecutionInfo info,
71: int processedStatementCount, int statementCount);
72:
73: /** Called when the SQLExecutor terminates due to an exception
74: */
75: public void sqlExecutionException(Throwable ex,
76: String postErrorString);
77:
78: /** Called when a SQLWarning is received during execuion of the sql*/
79: public void sqlExecutionWarning(SQLWarning warn);
80:
81: /**
82: * To set the number of statements that will be executed
83: */
84: public void sqlStatementCount(int statementCount);
85:
86: /**
87: * Tell the execution handler that we don't need it anymore
88: * In SQLExecutionHandler this will close the cancel panel.
89: *
90: */
91: public void sqlCloseExecutionHandler();
92: }
|