| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Problem with host array and ProC
Hi,
I have a serious problem:
EXEC SQL BEGIN DECLARE SECTION; const char *szTheDatabase = GetDbIdentifier();
long message2_detail_id[MAX_EVENTS];
long nMaxEvents = MAX_EVENTS;
long nCount;
EXEC SQL END DECLARE SECTION; EXEC SQL AT :szTheDatabase EXECUTE
DECLARE coEvents MATRIX.GINA_API.T_EVENT_ARRAY;
i BINARY_INTEGER;
nIndex BINARY_INTEGER;
BEGIN
:nCount := MATRIX.GINA_API.GET_EVENTS(:nMaxEvents,coEvents);
i := 1;
LOOP
:message2_detail_id(i) := coEvents(i).message2_detail_id;
i := i + 1;
EXIT WHEN i > :nCount;
END LOOP;
END;
TYPE t_event IS RECORD(
message2_detail_id NUMBER(10), -- Id of record in
gina_message2_detail
event_id NUMBER(10),
objid_ref INTEGER, -- PK of record which was changed
table_id NUMBER(10), -- entity which was changed
database_id NUMBER(10), -- database, where the change took place
first_change_date DATE, -- date of first modification
latest_change_date DATE, -- date of latest modification
/* Optional parameters, if neccesary more parameters will be added
*/
int_param_no_1 INTEGER,
char_param_no_1 VARCHAR2(2000),
int_param_no_2 INTEGER,
char_param_no_2 VARCHAR2(2000),
int_param_no_3 INTEGER,
char_param_no_3 VARCHAR2(2000)
The problem is in the loop: The SP fetches 50 Records (nCount = 50), but if I try to transfer array-index 50 to "message2_detail_id" I received a "SQL-Error" 1403 and no array elements are set. If i change the query to EXIT WHEN i = :nCount everything seems ok, but only 49 elements are transfered.
Can anyone tells me what I have made wrong???
Thanks in advance
Wolfgang Ebert Received on Mon Jun 03 2002 - 06:36:51 CDT
![]() |
![]() |