DispouseBuf error
DispouseBuf error
Hello,
we use ODAC 5.80.0.43 under Delphi5.
Database is Oracle9.2.0.1.
ODAC is used with NET Option False.
By all query components the cashed update is used.
The problem:
"DisposeBuf failed (D:\Projects\Delphi\Dac\Source\MemData.pas, line 6820)"
We know, that some problem with DisposeBuf was fixed in the later version of ODAC (6.05.0.7).
What kind of problem was it? Was it a new problem from the version 6 or it was the problem of earlier versions?
Thank you very much,
Vladimir
we use ODAC 5.80.0.43 under Delphi5.
Database is Oracle9.2.0.1.
ODAC is used with NET Option False.
By all query components the cashed update is used.
The problem:
"DisposeBuf failed (D:\Projects\Delphi\Dac\Source\MemData.pas, line 6820)"
We know, that some problem with DisposeBuf was fixed in the later version of ODAC (6.05.0.7).
What kind of problem was it? Was it a new problem from the version 6 or it was the problem of earlier versions?
Thank you very much,
Vladimir
the problem not solved
Unfortunately, the problem was not solved after compiling dac50.bpl with changes in the MemData unit.
We log all exceptions in the file using JCL debug. But in this case we are not able to define where the error comes from.
We cannot reproduce the problem in our test environment. However, the customer get this error regularily.
What can we do in such case? We try to analyse your code, but we cannot get so deep inside - it is not so transparent. What should we check, from your point of view, in our application? Wenn this error can happen, what can lead to it? The error comes from the following code in procedure TStringHeap.DisposeBuf(Buf: IntPtr):
if (Buf nil) then begin
PRefCount := IntPtr(Integer(Buf) - SizeOf(Word));
RefCount := Marshal.ReadInt16(PRefCount);
Assert(RefCount >= RefNull, 'DisposeBuf failed');
We work with Oracle 9.2.0.1.0. We use cached updates. Net option is set to false.
Any hint is welcome.
Thank you very much in advance,
Vladimir
We log all exceptions in the file using JCL debug. But in this case we are not able to define where the error comes from.
We cannot reproduce the problem in our test environment. However, the customer get this error regularily.
What can we do in such case? We try to analyse your code, but we cannot get so deep inside - it is not so transparent. What should we check, from your point of view, in our application? Wenn this error can happen, what can lead to it? The error comes from the following code in procedure TStringHeap.DisposeBuf(Buf: IntPtr):
if (Buf nil) then begin
PRefCount := IntPtr(Integer(Buf) - SizeOf(Word));
RefCount := Marshal.ReadInt16(PRefCount);
Assert(RefCount >= RefNull, 'DisposeBuf failed');
We work with Oracle 9.2.0.1.0. We use cached updates. Net option is set to false.
Any hint is welcome.
Thank you very much in advance,
Vladimir