Why, if property TOracleSession.Conected was true and generated Exception ora-03114 Not connected to Oracle when I execute some data in TOracleQuery or TOracleDataSet then this property not set to False on this exception?
Example: I can't do 20 line, because OracleSession.Connected return True. But Checkconnection on every fetch is not success
.
begin
OracleSession.Connected := true;
OracleQuery.SQL := 'select * from many_rows_table_sample';
OracleQuery.Execute;
while not OracleQuery.Eof do
try
//20 if not OracleSession.Connected
// then OracleSession.CheckConnection(True);
//some operation;
//...
OracleQuery.Next;
exception
on E: EOracleError and (E.ErrorCode = 3114) do
if not SleepWhileNotReconnect(E.Session)
then raise;
end
end;
function SleepWhileNotReconnect(ASession: TOracleSession): Boolean;
var
i: Integer;
begin
for i := 0 to 5 do
begin
//Check connection every minute;
Result := ASession.CheckConnection(True) ccError;
if Result
then Exit
else sleep(60000);
end;
end;
Who tell me others oracle error codes, when i can reestablish connection end proceed fetch next rows in OracleQuery
Example: I can't do 20 line, because OracleSession.Connected return True. But Checkconnection on every fetch is not success

begin
OracleSession.Connected := true;
OracleQuery.SQL := 'select * from many_rows_table_sample';
OracleQuery.Execute;
while not OracleQuery.Eof do
try
//20 if not OracleSession.Connected
// then OracleSession.CheckConnection(True);
//some operation;
//...
OracleQuery.Next;
exception
on E: EOracleError and (E.ErrorCode = 3114) do
if not SleepWhileNotReconnect(E.Session)
then raise;
end
end;
function SleepWhileNotReconnect(ASession: TOracleSession): Boolean;
var
i: Integer;
begin
for i := 0 to 5 do
begin
//Check connection every minute;
Result := ASession.CheckConnection(True) ccError;
if Result
then Exit
else sleep(60000);
end;
end;
Who tell me others oracle error codes, when i can reestablish connection end proceed fetch next rows in OracleQuery