I am using VB6.0 client and Oracle 8.1.7 Database. In VB6.0 ADODB.command
object is created and parameters are added. Database connection is established
and is set in command object. This command object is then used as source
to open the recordset which has following properties:
Recordset.CursorLocation = adUseClient
Recordset.CursorType = adOpenStatic
Recordset.LockType = adLockBatchOptimistic
Then connection is closed and disconnected recordset is obtained.

When I checked Field.Attributes in the recordset (adFldUpdatable is FALSE).
Also any updates to the records issues the following error message:
Run-time error '-2174721778 (80040e21)':
Multiple-step operation generated errors. Check each status value.

Stored procedure used is:
'*************************************************************************
CREATE OR REPLACE procedure PSSL_GETRECORDSET (
p_cursor IN OUT PSSLPCUR.cursor_reference,
ERROR_CODE OUT INTEGER,
ERROR_DESCRIPTION OUT VARCHAR2,
PROVIDER_ERROR OUT VARCHAR2,
INTEREST_ID_IN IN TABLE1.INTEREST_ID%TYPE := '%'
)
AS
mvchSQL VARCHAR2(8000);
v_InterestId TABLE1.INTEREST_ID%TYPE;
BEGIN
IF INTEREST_ID_IN IS NULL THEN
v_InterestId := '%';
ELSE
v_InterestId := INTEREST_ID_IN;
END IF;
-- define dynamic sql statements...
mvchSQL := 'SELECT * FROM TABLE1 WHERE INTEREST_ID LIKE :interest_id';
-- retrieve records with cursor varible...
OPEN p_cursor FOR mvchSQL USING v_InterestId;
-- successful return...
ERROR_CODE := PSSLERRM.SUCCESS_CODE;
ERROR_DESCRIPTION := PSSLERRM.SUCCESS_ERRM;
PROVIDER_ERROR := SQLERRM;
RETURN;
EXCEPTION
WHEN OTHERS THEN
ERROR_CODE := PSSLERRM.UNEXPECTED_CODE;
ERROR_DESCRIPTION := PSSLERRM.UNEXPECTED_ERRM;
PROVIDER_ERROR := SQLERRM;
RETURN;
end PSSL_GETRECORDSET;
'*************************************************************************


However, when I directly used SQL statement in command object (ie: bypassing
stored procedure) then the recordset obtained can be updated without any
error. But due to its limitation and performance, I am interested in using
stored procedure instead.

Could you please help me in solving the above problem.

Thanks in advance.