I'm wondering how to handle TOraQuery exceptions properly in NonBlocking mode without using extra global variables. I think especially about protection in case of EOutOfMemory exception.
in blocking mode code like this:
Code: Select all
try
OraQuery1.Open;
except
OraQuery1.Close
end;
But in NonBlocking mode the only place in application where EOutOfMemory exception is being processed is Application.OnException handler...
In current versions of ODAC the <TOraSession>.OnError event is not being called after trying to fetch too much data...
(is it a bug or it happens by design?) I'm aware of 2 GB limit for 32-bit applications so I want to prevent it.
For me it's just not so easy to take any useful actions (for example disconnect session / close query) inside OnException handler, because unit with Application.OnException handler have no direct access to session instance in my code
Could it be possible to make any changes that will make possible to launch <TOraSession>.OnError event in case of EOutOfMemory?
Regards
P.C.