Brad Wood
2004-05-26 23:39:59 UTC
Environment:
Delphi 7 with update 1, SqlServer 2K with service pack 3a, MDAC 2.7 and 2.8
(updating to 2.8 - no change).
When executing the ExecProc method of a TADOStoredProc I sometimes get
"access violation at address 1F33A7FF in module 'msado15.dll'". All the
data passed to the parameters of the TADOStoredProc look fine going in.
Subsequent calls to the stored proc give erroneous results (reports that
parameters of the stored proc don't exist when they do, actual code snippets
[C code from somewhere] get inserted into the database). After my
application finishes, I get an exception from oleaut32.dll.
The code used by the TADOStoredProc has not changed in a long time and is in
production here. I can run the exact same data (after cleaning out the
relevant tables in the database) several times and it doesn't always happen
(it usually only works when I step through code, but not always).
The only thing that has obviously changed since it worked was the update to
Delphi 7. The page where you can download the update contains this text:
PLEASE NOTE: This patch contains changes to the database runtime files that
may cause applications
using persistent TStringField objects to raise "Size mismatch" exceptions.
This exception is
generated when potential memory overwrite situations are detected. See
Resolving size mismatch
exceptions with the Delphi 7.1 update for more information on this fix.
Since this patch was
released, customers have been reporting issues with this additional data
integrity enforcement
generating exceptions in applications that may have previously been running
successfully.
Borland is currently making an additional source code change that will
enforce data integrity
without raising an exception, and we will make that updated version
available as soon as possible.
That doesn't seem to apply to me, but I don't really know what "data
integrity enforcement" is. The read me link for the update is broken, so I
don't know what it says.
I wonder if anyone has any ideas about what to look at to try to resolve the
problem...
Delphi 7 with update 1, SqlServer 2K with service pack 3a, MDAC 2.7 and 2.8
(updating to 2.8 - no change).
When executing the ExecProc method of a TADOStoredProc I sometimes get
"access violation at address 1F33A7FF in module 'msado15.dll'". All the
data passed to the parameters of the TADOStoredProc look fine going in.
Subsequent calls to the stored proc give erroneous results (reports that
parameters of the stored proc don't exist when they do, actual code snippets
[C code from somewhere] get inserted into the database). After my
application finishes, I get an exception from oleaut32.dll.
The code used by the TADOStoredProc has not changed in a long time and is in
production here. I can run the exact same data (after cleaning out the
relevant tables in the database) several times and it doesn't always happen
(it usually only works when I step through code, but not always).
The only thing that has obviously changed since it worked was the update to
Delphi 7. The page where you can download the update contains this text:
PLEASE NOTE: This patch contains changes to the database runtime files that
may cause applications
using persistent TStringField objects to raise "Size mismatch" exceptions.
This exception is
generated when potential memory overwrite situations are detected. See
Resolving size mismatch
exceptions with the Delphi 7.1 update for more information on this fix.
Since this patch was
released, customers have been reporting issues with this additional data
integrity enforcement
generating exceptions in applications that may have previously been running
successfully.
Borland is currently making an additional source code change that will
enforce data integrity
without raising an exception, and we will make that updated version
available as soon as possible.
That doesn't seem to apply to me, but I don't really know what "data
integrity enforcement" is. The read me link for the update is broken, so I
don't know what it says.
I wonder if anyone has any ideas about what to look at to try to resolve the
problem...