hi vadim,
thanks for your contribution. the fix is in cvs (trunk and branch).
jakob
Vadim Gritsenko schrieb:
Hi all,
This simple patch enables usage of SequenceManagerStoredProcedureImpl when OJB is running under Oracle. Method prepareNextValProcedureStatement implementation is simply copied over from PlatformMsSQLServerImpl class.
Patch is against OJB_1_0_RELEASE, tested with Oracle 9i.
Vadim
------------------------------------------------------------------------
Index: src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java
===================================================================
RCS file: /home/cvspublic/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java,v
retrieving revision 1.20
diff -u -r1.20 PlatformOracleImpl.java
--- src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java 22 May 2004 09:55:33 -0000 1.20
+++ src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java 24 Dec 2004 18:52:55 -0000
@@ -25,6 +25,7 @@
import java.lang.reflect.Field;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
@@ -49,6 +50,24 @@
protected static final int THIN_CLOB_MAX_SIZE = 4000;
private Logger logger = LoggerFactory.getLogger(PlatformOracleImpl.class);
+ // Copied from PlatformMsSQLServerImpl
+ public CallableStatement prepareNextValProcedureStatement(Connection con, String procedureName,
+ String sequenceName) throws PlatformException
+ {
+ try
+ {
+ String sp = "{?= call " + procedureName + " (?)}";
+ CallableStatement cs = con.prepareCall(sp);
+ cs.registerOutParameter(1, Types.INTEGER);
+ cs.setString(2, sequenceName);
+ return cs;
+ }
+ catch (SQLException e)
+ {
+ throw new PlatformException(e);
+ }
+ }
+
/**
* In Oracle we set escape processing explizit 'true' after a statement was created.
*/
------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
