|
The exact format of a stored procedure call is
dependent on the specific database manager you are
using. You didn't mention that. Most database
systems support the SQL CallableStatement protocol. I
have some simple examples calling a stored procedure
in DB2 on NT. IF you have a choice, DB2 offers more
options and is easier to create stored procedures than
SQL Server.
1) A Java stored procedure
// this is a segment from a method in the Java class
Connection con =
DriverManager.getConnection("jdbc:default:connection");
PreparedStatement stmt = null;
ResultSet rs = null;
String sql = "SELECT"
+ " CHAR('JMASON3'),"
+ " EMPLOYEE.EMPNO AS EMPNO,"
+ " EMPLOYEE.SALARY + EMPLOYEE.BONUS +
EMPLOYEE.COMM,"
+ " CHAR('RAN')" FROM EMPLOYEE"
+ " WHERE ( ( EMPLOYEE.EMPNO = ?
) )";
stmt = con.prepareStatement( sql );
stmt.setString( 1, emnpno );
rs = stmt.executeQuery();
rs.next();
total_pay[0] = rs.getBigDecimal(3, 2);
2) A Java client calling the stored procedure
// this is a segment in the client class calling
// the procedure
dbConn = ( Connection)
java.sql.DriverManager.getConnection(aUrl, "jem",
"jem");
aCallStmt = (CallableStatement)
dbConn.prepareCall(stmt);
aCallStmt.setString(1, libName);
aCallStmt.setString(2, empno);
aCallStmt.registerOutParameter(3,
java.sql.Types.DECIMAL, 2);
aCallStmt.registerOutParameter(4,
java.sql.Types.CHAR);
aCallStmt.execute();
_total_pay = aCallStmt.getBigDecimal(3, 2);
setRunStatus("done");
result = _total_pay.toString();
// next close statement, connection if needed ==================================
MORE INFORMATION ON THIS TOPIC
==================================
Ask your Web development questions--or help out your peers by answering them--in our live discussion forums.
The Best Web Links: tips, tutorials and more.
Check out this live Q&A with Dave Slater and Jim Mason, How to best get started with WebSphere Development Tools.
|