| From: | Tzuriel Kahlon <tzuriel1986(at)gmail(dot)com> |
|---|---|
| To: | Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella(at)gmail(dot)com> |
| Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Ecpg fetch issue |
| Date: | 2025-12-09 20:51:58 |
| Message-ID: | CANoyZGp+tSAzn09f3c2hy1qBM_Z_zzoMCE53DkK9gVEiaxGu7g@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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(at)gmail(dot)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(at)gmail(dot)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(at)gmail(dot)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(at)gmail(dot)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
>>>>
>>>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David G. Johnston | 2025-12-09 21:56:24 | Re: How do I check for NULL |
| Previous Message | Juan Rodrigo Alejandro Burgos Mella | 2025-12-09 20:49:43 | Re: Ecpg fetch issue |