Hi
When using ECPG, if you have a simple FETCH, it will do it row by row; the way to download more than one row at a time is by using data arrays.
In my case, when I want to extract, for example, 100 records at once, I use the following model:
I define a data array:
EXEC SQL BEGIN DECLARE SECTION;
struct _resultData {
int int_data1;
char chr_data2[11];
} resultData[100];
EXEC SQL END DECLARE SECTION;
and then in the fetch:
EXEC SQL
FETCH FORWARD 100 cCursor
INTO :resultData;
and the variable sqlca.sqlerrd[2] controls the number of records returned
I hope it helps you
Atte
JRBM
Hey all ,
We are using IBM for cobol and connextint postgres db with ecpg the precompiler , problem is when we running cursor against db the prefetch are not set correctly and provide one row each time he approach to db and this decrease the performance significantly if twvle have 100000 rows it take it one by one each run .
In procob which is the precompiler of Oracle there are option to set the prefetch to take in each time it approach the db x number of rows you want and this ease the db retrieved and enhance the performance .
I know that there is a way to change the setting in the application code, but I want to eliminate touch any code and configure only the ecpg which is the middle between cobol and db.
There is anyone from you which encountered same issue?
בברכה
צוריאל כחלון
0523851143