Page 1 of 1

LiteDAC AV in direct mode

Posted: Fri 17 Aug 2012 09:50
by Tarifer
Hello, I use LiteDAC trial (Delphi XE2, win32).
In direct mode I sometimes get Access Violation bug. Call stack is:

Code: Select all

:004050eb Move + $67
:00fca7dc ; D:\Work\MobileTariff\SVN\trunk\Tarifer\Tarifer.exe
:00fcb28b ; D:\Work\MobileTariff\SVN\trunk\Tarifer\Tarifer.exe
:00fcb30c ; D:\Work\MobileTariff\SVN\trunk\Tarifer\Tarifer.exe
:00fcb46f ; D:\Work\MobileTariff\SVN\trunk\Tarifer\Tarifer.exe
:00fe1961 _sqlite3_enable_shared_cache + $9626
:00fe19ab _sqlite3_enable_shared_cache + $9670
:00fe1a57 _sqlite3_enable_shared_cache + $971C
:00ff196c _sqlite3_bind_parameter_count + $C4B8
:00ff1e43 _sqlite3_bind_parameter_count + $C98F
:00ff0b26 _sqlite3_bind_parameter_count + $B672
:00ff2620 _sqlite3_bind_parameter_count + $D16C
:00ff2230 _sqlite3_bind_parameter_count + $CD7C
:00ff24e5 _sqlite3_bind_parameter_count + $D031
:00ff24b9 _sqlite3_bind_parameter_count + $D005
:00ff1c99 _sqlite3_bind_parameter_count + $C7E5
:00ff2066 _sqlite3_bind_parameter_count + $CBB2
:010030e7 _sqlite3_prepare_v2 + $A22
:01006f63 _sqlite3_prepare_v2 + $489E
:01011511 _sqlite3_prepare_v2 + $EE4C
:01012cb2 _sqlite3_prepare_v2 + $105ED
:01013586 _sqlite3_prepare_v2 + $10EC1
:010023d4 _sqlite3_bind_parameter_count + $1CF20
:010025ef _sqlite3_bind_parameter_count + $1D13B
:010026e0 _sqlite3_prepare_v2 + $1B
:01024300 TSQLiteCommand.Prepare + $C0
:00e73e5b TCRRecordSet.InternalPrepare + $B
:00e74604 TCRRecordSet.ExecFetch + $10
:00df8542 TData.Open + $3A
:00e014c9 TMemData.Open + $5
:00dde9df TDataSet.DoInternalOpen + $1F
:00dde953 TDataSet.SetActive + $5B
:00e92612 TCustomDADataSet.SetActive + $42
When I try again same query, it usually works.

If DirectMode=False, it works fine, no AV occured.

I can send test project to support.

Thanks,
Dmitry Ukolov.

Re: LiteDAC AV in direct mode

Posted: Fri 17 Aug 2012 10:03
by Tarifer
I sent test project to [email protected].

Dmitry Ukolov.

Re: LiteDAC AV in direct mode

Posted: Fri 17 Aug 2012 10:43
by ZEuS
Thank you for the information.
We have fixed the error and will include the fix in the next LiteDAC build.
For now you can develop and test your applicaiton with DirectMode set to False.

Re: LiteDAC AV in direct mode

Posted: Tue 21 Aug 2012 09:36
by TomekC
Hi.
I might have the same problem but I'm not sure about it.
During adding data to database in Direct Mode I get Access Violation.
If I don't use Direct Mode it works fine.
Also Access Violation only happens when there are more then 8 columns in the table.
I use LiteDac trial version.

Call stack:

Code: Select all

:00404a87 Move + $67
:00623f80 ; C:\projekty\DelphiXE2\sqlitetest\Project1.exe
:00624a2f ; C:\projekty\DelphiXE2\sqlitetest\Project1.exe
:00624ab0 ; C:\projekty\DelphiXE2\sqlitetest\Project1.exe
:00624c13 ; C:\projekty\DelphiXE2\sqlitetest\Project1.exe
:006496b2 _sqlite3_bind_parameter_count + $AA5A
:0066bcfb _sqlite3_prepare_v2 + $FE92
:0066c456 _sqlite3_prepare_v2 + $105ED
:0066ccd4 _sqlite3_prepare_v2 + $10E6B
:0065bb78 _sqlite3_bind_parameter_count + $1CF20
:0065bd93 _sqlite3_bind_parameter_count + $1D13B
:0065be84 _sqlite3_prepare_v2 + $1B
:0067d8c8 TSQLiteCommand.Prepare + $C0
:005eaf33 TCRRecordSet.InternalPrepare + $B
:00608589 TCustomDADataSet.InternalExecute + $11
Unit1.TForm1.Button2Click($23CB810)
Also sending test project to [email protected]

Re: LiteDAC AV in direct mode

Posted: Tue 21 Aug 2012 12:31
by ZEuS
Thank you for the information.
Both errors has the same cause, we have already fixed the problem and will include the fix in the next build of LiteDAC.
For now we have sent you a fixed LiteStatic.dcu module by email.
Try to replace LiteStatic.dcu in the [the LiteDAC installation folder]\Lib\Win32 folder with the dcu from the archive and check if the error persists.
Please let us know if the problem is resolved.

Re: LiteDAC AV in direct mode

Posted: Tue 21 Aug 2012 13:11
by TomekC
Thank you very much.
Replacing LiteStatic.dcu resolves the problem.