Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:
You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.
Doh, there was a continue handler up at the top of the procedure which set endCursor to -1 meaning the while loop was never entered. Yet the debugger implied that the delete statement was being run
I'm trying to delete a bunch of records based on the results from a cursor. It's not throwing an error, but no delete is happening.
This works:-
Code:
OPEN priceDetailsCursor;
FETCH priceDetailsCursor INTO priceDetailsPrimaryKey;
--WHILE (endCursor = 0) DO
DELETE FROM MMNBDLIB.PRCTAX WHERE FKPRCDET = priceDetailsPrimaryKey;
-- SET endCursor = -1;
--END WHILE;
CLOSE priceDetailsCursor;
This doesn't:-
Code:
OPEN priceDetailsCursor;
FETCH priceDetailsCursor INTO priceDetailsPrimaryKey;
WHILE (endCursor = 0) DO
DELETE FROM MMNBDLIB.PRCTAX WHERE FKPRCDET = priceDetailsPrimaryKey;
SET endCursor = -1;
END WHILE;
CLOSE priceDetailsCursor;
In the "Explain SQL" option in the iSeries Navigator it says "SQL5065 Access plan not found." when it tries to do the delete, but no exception is thrown. priceDetailsPrimaryKey is being set to the correct value as I've checked by setting an out parameter to its value. I've Googled to no avail. Anyone got any ideas?
Leave a comment: