ora-01000 in case of using cursor variables in TOracleDataSet

Ash

Member
Hi all!

Firstly, sorry for my ugly english
smile.gif


I'm using DOA 3.4.3

In package
____________________________________________
type rSimplePays is record(
GroupName cb_repgroups.groupname%type
, SumPay number
);

type rcSimplePays is ref cursor return rSimplePays;

procedure SV_SimpleGroup(Result in out rcSimplePays
, nID_group in positiven
, nID_fil in varchar2
, dPeriodFrom in date
, dPeriodTo in date) is

begin
open Result for
select rg1.groupname
, cb_common.groupsumpays(rg1.id_group,dPeriodFrom,dPeriodTo,nID_fil) Pays
from cb_repgroups rg1
where rg1.id_group_link_to=nID_group
order by reporder;
end;
_____________________________________________
TOracleDataSet.SQL->

begin
buffer.cb_reports.generalpaysfor(:Result,:ID_fil,:PeriodFrom,:PeriodTo);
end;
_____________________________________________

In case repeatedly closing and opening TOracleDataSet i have error ora-01000, "maximum open cursors exceed". In case using "simple" SQL statement this error not occured.

How i should use cursor variables with DOA so as not to occure this error?

Truly yours, Oleg Ivanenko aka Ash
ICQ [119082031]
email [oai-ash@yandex.ru]
 
My guess is that you are using Net8 8.0.x in OCI8 mode (the default). This Net8 version has a bug when clusing cursor variables, which will cause cursor leaks.

To fix this, set TOracleSession.Preferences.UseOCI7 to True (only possible if you are not using any Net8 specific features such as CLOB's and BLOB's), or upgrade to Net8 8.1.x.

------------------
Marco Kalter
Allround Automations
 
Hi all!

Thanks Marco!

I already has found this thing in that forum, and fixed it
smile.gif


Anyway - thanks again.

Truly yours, Oleg Ivanenko aka Ash
ICQ [119082031]
email [oai-ash@yandex.ru]
 
Back
Top