Re: Ecpg fetch issue - Mailing list pgsql-general

From Tzuriel Kahlon
Subject Re: Ecpg fetch issue
Date
Msg-id CANoyZGp+tSAzn09f3c2hy1qBM_Z_zzoMCE53DkK9gVEiaxGu7g@mail.gmail.com
Whole thread Raw
In response to Re: Ecpg fetch issue  (Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella@gmail.com>)
List pgsql-general
Yes , and this is our issue that we try to solve in our product , we are working with IBM for cobol and try our luck to see if someone get any advance on that topic. 




בברכה 
צוריאל כחלון 
0523851143

On Tue, Dec 9, 2025, 22:49 Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella@gmail.com> wrote:
The issue is that there's no direct ECPG for COBOL; ECPG is a C preprocessor and can only be used as an external function. Alternatively, you can use libpq as a wrapper, but you'll still need to compile the C code.

Atte
JRBM

El mar, 9 dic 2025 a las 15:30, Tzuriel Kahlon (<tzuriel1986@gmail.com>) escribió:
Hey thank you for the answer , the solution you suggest is modified the code in the application side i want to open the ecpg like procob in oracle and set it there without any intervention. On the code itself .




בברכה 
צוריאל כחלון 
0523851143

On Tue, Dec 9, 2025, 22:27 Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella@gmail.com> wrote:
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


El mar, 9 dic 2025 a las 14:53, Tzuriel Kahlon (<tzuriel1986@gmail.com>) escribió:
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

pgsql-general by date:

Previous
From: Juan Rodrigo Alejandro Burgos Mella
Date:
Subject: Re: Ecpg fetch issue
Next
From: "David G. Johnston"
Date:
Subject: Re: How do I check for NULL