Closed IL2 closed 9 years ago
Don't re-use the v
already used as the first parameter. Use a second w
or v1
I've made corrections in 03 Data ADO\xxmData.pas: var v,v1:OleVariant; v1:=EmptyParam; cmd.Execute(v,v1,0);
Error is still the same xxm://demo/ EAccessViolation Access violation at address 043D3E29 in module 'XXMLOC~2.DLL'. Read of address F28B562B It happens in xxmLocalDev.dll
Have you tried with Null
?
Or perhaps try with this:
cmd.Execute(v,POleVariant(nil)^,0);
Both v1:=Null; cmd.Execute(v,v1,0); and cmd.Execute(v,POleVariant(nil)^,0); produce the same error at the same addresses.
Btw, demo.ldb lock file is present and updated every time I call xxm:demo.
Demo.ldb is not really a alock file, it always exist when an Access mdb is currently accessed. I regret these don't work since they did with a test I did on Delphi XE7, could it be possible something else in the vicinity of that code?
Hey wait a minute, I just notice the exception is in module 'XXMLOC~2.DLL'
with a really high address that starts with F. I noticed typically this happens whit xxm projects compiled with a 'modern' Delphi version. The release xxm*.dll's are built with Delphi 7, and newer Delphi versions have changed something binary behind the scenes about how exceptions are thrown. You might be getting an exception (perhaps a SQL syntax error!), and this access violation is the xxm dll misunderstanding this exception.
I can advise you to do one of these things:
xxmp.pas
unit). This passes all exception data in strings, specifically because I ran into this binary difference of the Exception object.Let me know if this puts you in a good direction to work to a solution.
After issue #1 which I've fixed for myself with v:=EmptyParam; cmd.Execute(v,v,0); appears this problem:
default_xxm An error occurred while rendering this page. xxm://demo/ EAccessViolation Access violation at address 04693E29 in module 'XXMLOC~2.DLL'. Read of address F28B562B QueryString: Post data: none xxm Local Handler (AutoBuild) 1.2.2.369
XXMLOC~2.DLL is definetely xxmLocalDev.dll. I don't know how to debug this and where in the code it happens.