These -4024 log entries are driving me absolutely mad. There is no reason
for these dbproc errors as I cannot see anywhere the dbproc is in error. I
have attached the full dbproc code and below is the error I get in the
catalina log file from tomcat. If someone (anyone) can take a look at the
info I have provided to see if they notice something strange I would
appreciate it.

[SYSTEM INFO]
SAPDB 7.3.0.34 w/ SAP's JDBC driver
SUSE 8.1
TOMCAT 4.1.27

[ERROR SNIPET FROM CATALINA.OUT]
com.sap.dbtech.jdbc.exceptions.DatabaseException: [-4024]: Error
        at
com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:69)
        at
com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:763)
        at
com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:429)
        at
com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:320)
        at
com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.ja
va:380)
        at
com.sap.dbtech.jdbc.CallableStatementSapDB.execute(CallableStatementSapDB.ja
va:289)
        at com.synfoserv.actions.CallAction.callSearch(CallAction.java:442)

[CALLING CODE FROM WEB APPLICATION]
cstmt = m_conDb.prepareCall("{call sp_call_edit(?,?,?,?,?,?,?)}");
cstmt.setInt(1,dtc.string2Integer(sCallId,true));
cstmt.setInt(2,dtc.string2Integer(sCompanyId,true));
cstmt.setInt(3,dtc.string2Integer(sDivisionId,true));
cstmt.setInt(4,dtc.string2Integer(sPersonId,true));
cstmt.setInt(5,dtc.string2Integer(sOpportunityId,true));
cstmt.setInt(6,dtc.string2Integer(sQuoteId,true));
cstmt.setInt(7,dtc.string2Integer(sOrderId,true));
cstmt.execute(); <--- THIS IS LINE 442

[ATTACHED FILE IS THE SP_CALL_EDIT DBPROC]

Thanks,

Kevin

CREATE DBPROC SP_CALL_EDIT 
(IN CALL_ID INT, IN COMPANY_ID INT, IN DIVISION_ID INT, 
 IN PERSON_ID INT, IN OPPORTUNITY_ID INT, IN QUOTE_ID INT, IN ORDER_ID INT ) 
RETURNS CURSOR AS VAR SEARCH INT; 
BEGIN SET $CURSOR = 'MYCURSOR'; 

IF (ORDER_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT 
     CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
     P.PERSON_ID, P.FNAME, P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, 
     DBUSER.PERSON P, DBUSER.ORDERS O 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.ORDER_ID = O.ORDER_ID (+) AND CA.ORDER_ID = 
:ORDER_ID 
AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (QUOTE_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
P.PERSON_ID, P.FNAME, P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, 
DBUSER.PERSON P, DBUSER.QUOTE Q 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.QUOTE_ID = Q.QUOTE_ID (+) 
AND CA.ORDER_ID = :ORDER_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (OPPORTUNITY_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
P.PERSON_ID, P.FNAME, P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, 
DBUSER.PERSON P, DBUSER.OPPORTUNITY OP 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.OPPORTUNITY_ID = OP.OPPORTUNITY_ID (+) 
AND CA.OPPORTUNITY_ID = :OPPORTUNITY_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (PERSON_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
P.PERSON_ID, P.FNAME, P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.PERSON_ID = :PERSON_ID AND CA.CALL_ID <> 0 
AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (DIVISION_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
P.PERSON_ID, P.FNAME, P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.DIVISION_ID = :DIVISION_ID 
AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (COMPANY_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, P.PERSON_ID, P.FNAME, 
P.LNAME 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, DBUSER.PERSON P 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.COMPANY_ID = :COMPANY_ID AND CA.CALL_ID <> 0 
AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
SET SEARCH = 1; 
END; 

IF (CALL_ID > 0) AND (SEARCH = 0) THEN 
BEGIN DECLARE :$CURSOR CURSOR FOR 
SELECT CA.*, C.COMPANY_ID, C.COM_NAME, D.DIVISION_ID, DIV_NAME, 
P.PERSON_ID, P.FNAME, P.LNAME, OP.OPPORTUNITY_ID, Q.QUOTE_ID, O.ORDER_ID 
FROM DBUSER.CALL CA, DBUSER.COMPANY C, DBUSER.DIVISION D, 
DBUSER.PERSON P, DBUSER.OPPORTUNITY OP, DBUSER.QUOTE Q, DBUSER.ORDERS O 
WHERE CA.COMPANY_ID = C.COMPANY_ID AND CA.DIVISION_ID = D.DIVISION_ID (+) 
AND CA.PERSON_ID = P.PERSON_ID (+) AND CA.OPPORTUNITY_ID = OP.OPPORTUNITY_ID (+) 
AND CA.QUOTE_ID = Q.QUOTE_ID (+) AND CA.ORDER_ID = O.ORDER_ID (+) 
AND CA.CALL_ID = :CALL_ID AND CA.CALL_ID <> 0 AND CA.ACTIVE='Y' 
ORDER BY CA.DUE_DATE DESC, CA.DUE_TIME DESC; 
END; 
END;
-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to