01: /*
02:
03: Derby - Class org.apache.derby.iapi.jdbc.EngineConnection
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21: package org.apache.derby.iapi.jdbc;
22:
23: import java.sql.Connection;
24: import java.sql.PreparedStatement;
25: import java.sql.SQLException;
26: import java.sql.SQLWarning;
27:
28: import org.apache.derby.iapi.reference.SQLState;
29: import org.apache.derby.iapi.sql.execute.ExecutionContext;
30: import org.apache.derby.impl.jdbc.Util;
31:
32: /**
33: * Additional methods the embedded engine exposes on its Connection object
34: * implementations. An internal api only, mainly for the network
35: * server. Allows consistent interaction between EmbedConnections
36: * and BrokeredConnections.
37: *
38: */
39: public interface EngineConnection extends Connection {
40:
41: /**
42: * Set the DRDA identifier for this connection.
43: */
44: public void setDrdaID(String drdaID);
45:
46: /**
47: * Set the transaction isolation level that will be used for the
48: * next prepare. Used by network server to implement DB2 style
49: * isolation levels.
50: * Note the passed in level using the Derby constants from
51: * ExecutionContext and not the JDBC constants from java.sql.Connection.
52: * @param level Isolation level to change to. level is the DB2 level
53: * specified in the package names which happen to correspond
54: * to our internal levels. If
55: * level == ExecutionContext.UNSPECIFIED_ISOLATION,
56: * the statement won't be prepared with an isolation level.
57: *
58: *
59: */
60: public void setPrepareIsolation(int level) throws SQLException;
61:
62: /**
63: * Return prepare isolation
64: */
65: public int getPrepareIsolation() throws SQLException;
66:
67: /**
68: * Prepare a statement with holdability.
69: * Identical to JDBC 3.0 method, to allow holdabilty
70: * to be supported in JDK 1.3 by the network server,
71: * e.g. when the client is jdk 1.4 or above.
72: * Can be removed once JDK 1.3 is no longer supported.
73: */
74: public PreparedStatement prepareStatement(String sql,
75: int resultSetType, int resultSetConcurrency,
76: int resultSetHoldability) throws SQLException;
77:
78: /**
79: * Get the holdability of the connection.
80: * Identical to JDBC 3.0 method, to allow holdabilty
81: * to be supported in JDK 1.3 by the network server,
82: * e.g. when the client is jdk 1.4 or above.
83: * Can be removed once JDK 1.3 is no longer supported.
84: */
85: public int getHoldability() throws SQLException;
86:
87: /**
88: * Add a SQLWarning to this Connection object.
89: * @param newWarning Warning to be added, will be chained to any
90: * existing warnings.
91: */
92: public void addWarning(SQLWarning newWarning) throws SQLException;
93:
94: }
|