Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Delphi 10 - DBX SQLite External Exceptions



Permlink Replies: 8 - Last Post: Oct 5, 2015 8:36 AM Last Post By: quinn wildman Threads: [ Previous | Next ]
steven chesser

Posts: 84
Registered: 7/27/00
Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Sep 26, 2015 5:47 PM
Using the new Delphi 10.. VCL or FMX application...

Trying to use the Data Explorer tab to open/view SQLite file I just created in it.
Also when I drop a TSQLTable control on form and access the table list, I get the external exception error...
Not sure what is going on.. works fine in XE8.


Error

External exception C06D007F.

OK Details >>

[75D9C42D]{KERNELBASE.dll} RaiseException + $58
[16041970]{DBXSqliteDriver230.bpl} SysInit.@_delayLoadHelper2 (Line 380, "C:\Builds\tp\runtime\rtl\sys\delayhlp.cpp" + 157) + $5
[160419B9]{DBXSqliteDriver230.bpl} SysInit.@_delayLoadHelper2 (Line 394, "C:\Builds\tp\runtime\rtl\sys\delayhlp.cpp" + 171) + $D
[526CAFBE]{DbxCommonDriver230.bpl} Data.DBXCommon.TDBXContext.Trace (Line 11097, "Data.DBXCommon.pas" + 1) + $F
[1604236D]{DBXSqliteDriver230.bpl} System.Sqlite.sqlite3.dll (Line 1416, "System.Sqlite.pas" + 0) + $5
[1604D2FE]{DBXSqliteDriver230.bpl} Data.DbxSqlite.TDBXSqliteReader.Create (Line 1516, "Data.DbxSqlite.pas" + 12) + $5
[1604A75D]{DBXSqliteDriver230.bpl} Data.DbxSqlite.TDBXSqliteCommand.DerivedExecuteQuery (Line 615, "Data.DbxSqlite.pas" + 13) + $14
[526C73F1]{DbxCommonDriver230.bpl} Data.DBXCommon.TDBXCommand.ExecuteQuery (Line 8900, "Data.DBXCommon.pas" + 4) + $4
[526C793F]{DbxCommonDriver230.bpl} Data.DBXCommon.TDBXMorphicCommand.ExecuteQuery (Line 9087, "Data.DBXCommon.pas" + 2) + $5
[5195CFE8]{dbexpress230.bpl} Data.SqlExpr.TCustomSQLDataSet.ExecuteStatement (Line 6308, "Data.SqlExpr.pas" + 43) + $B
[51956540]{dbexpress230.bpl} Data.SqlExpr.TCustomSQLDataSet.InternalOpen (Line 4042, "Data.SqlExpr.pas" + 1) + $2
[5106FAE2]{dbrtl230.bpl} Data.DB.TDataSet.DoInternalOpen (Line 12489, "Data.DB.pas" + 2) + $4
[5106FB92]{dbrtl230.bpl} Data.DB.TDataSet.OpenCursor (Line 12518, "Data.DB.pas" + 3) + $0
[5195667B]{dbexpress230.bpl} Data.SqlExpr.TCustomSQLDataSet.OpenCursor (Line 4074, "Data.SqlExpr.pas" + 10) + $4
[51960E71]{dbexpress230.bpl} Data.SqlExpr.TSQLTable.OpenCursor (Line 7762, "Data.SqlExpr.pas" + 1) + $2
[5106FA49]{dbrtl230.bpl} Data.DB.TDataSet.SetActive (Line 12470, "Data.DB.pas" + 12) + $7
[50128A8E]{rtl230.bpl } System.TypInfo.SetOrdProp (Line 2787, "System.TypInfo.pas" + 28) + $0
[2117C3A6]{designide230.bpl} DesignEditors.TPropertyEditor.SetOrdValue (Line 839, "DesignEditors.pas" + 2) + $E
[211D280B]{designide230.bpl} VCLEditors.TBooleanProperty.MouseUp (Line 1899, "VCLEditors.pas" + 5) + $10
[2136F7D5]{vclide230.bpl} PropBox.TCustomPropListBox.ItemMouseUp (Line 1646, "PropBox.pas" + 17) + $1B
[2136F9CB]{vclide230.bpl} PropBox.TCustomPropListBox.MouseUp (Line 1711, "PropBox.pas" + 1) + $D
[50993ED0]{vcl230.bpl } Vcl.Controls.TControl.DoMouseUp (Line 7493, "Vcl.Controls.pas" + 2) + $28
[50993F50]{vcl230.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7506, "Vcl.Controls.pas" + 9) + $6
[213751E0]{vclide230.bpl} IDEInspListBox.TInspListBox.WMLButtonUp (Line 1643, "IDEInspListBox.pas" + 3) + $4
[50993529]{vcl230.bpl } Vcl.Controls.TControl.WndProc (Line 7249, "Vcl.Controls.pas" + 91) + $6
[0D1A4EF4]{TrackingSystem230.bpl} TrackingSystemHelp.CBTHookProc (Line 211, "TrackingSystemHelp.pas" + 27) + $F
[50997877]{vcl230.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9842, "Vcl.Controls.pas" + 1) + $9
[50998069]{vcl230.bpl } Vcl.Controls.TWinControl.WndProc (Line 10079, "Vcl.Controls.pas" + 158) + $6
[509BBE05]{vcl230.bpl } Vcl.StdCtrls.TCustomListBox.WndProc (Line 7122, "Vcl.StdCtrls.pas" + 55) + $5
[50997688]{vcl230.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9786, "Vcl.Controls.pas" + 3) + $6
[5017252C]{rtl230.bpl } System.Classes.StdWndProc (Line 16881, "System.Classes.pas" + 8) + $0
[50ADCEBB]{vcl230.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10438, "Vcl.Forms.pas" + 23) + $1
[50ADCEFE]{vcl230.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10468, "Vcl.Forms.pas" + 1) + $4
[50ADD231]{vcl230.bpl } Vcl.Forms.TApplication.Run (Line 10606, "Vcl.Forms.pas" + 26) + $3
steven chesser

Posts: 401
Registered: 4/13/09
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Sep 27, 2015 10:12 PM   in response to: steven chesser in response to: steven chesser
Well... didn't realize, XE8 usage also now crashes out with same exact results... Seems since XE10 was installed something got broke...
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 1, 2015 10:25 AM   in response to: steven chesser in response to: steven chesser
While I cannot easily explain the change, are you using a version of
SQLite that DBExpress supports? DBExpress has not been updated in a
while. Supported versions are here:

http://docwiki.embarcadero.com/RADStudio/XE8/en/DbExpress_Supported_Database_Management_Systems

steven chesser wrote:
Trying to use the Data Explorer tab to open/view SQLite file I just created in it.
Also when I drop a TSQLTable control on form and access the table list, I get the external exception error...
Not sure what is going on.. works fine in XE8.
steven chesser

Posts: 84
Registered: 7/27/00
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 1, 2015 2:31 PM   in response to: quinn wildman in response to: quinn wildman
quinn wildman wrote:
While I cannot easily explain the change, are you using a version of
SQLite that DBExpress supports? DBExpress has not been updated in a
while. Supported versions are here:

http://docwiki.embarcadero.com/RADStudio/XE8/en/DbExpress_Supported_Database_Management_Systems

I am using sqlite files created in XE8 with DBExpress...

I ended up uninstalling XE10 .. then did a repair/modify/whatever to XE8 ... but it doesn't seem to be happy still.

What is interesting.. is my Clean builder machine.. never had XE10 ... has these problems now.

exception message : Access violation at address 00000000 in module 'bds.exe'. Read of address 00000000.

disassembling:
5234acb0 public Data.Dbxcommon.TDBXDelegateDriver.CreateConnection: ; function entry point
5234acb0 11218 mov eax, [eax+$24]
5234acb3 mov ecx, [eax]
5234acb5 > call dword ptr [ecx+$10]
5234acb5
5234acb8 11219 ret

Have to do more hunting.... Something else is messing up DBExpress usage... just what, no idea.
steven chesser

Posts: 84
Registered: 7/27/00
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 1, 2015 3:23 PM   in response to: steven chesser in response to: steven chesser
Ok got it solved... to make it work in the IDE again.

I placed a copy of SQLITE3.DLL into C:\Program Files (x86)\Embarcadero\Studio\16.0\bin

and now it works in the IDE.. no more blowing up.

I had to play with the sources and trace through it to figure it out that was the problem but it works now!

To be honest, not sure how this ever worked then before unless some how a copy of the DLL was just so happen to be somewhere that made Delphi happy and it got killed.

Glad its fixed.. can continue on with things.
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 2, 2015 8:56 AM   in response to: steven chesser in response to: steven chesser
SQLITE3.DLL is the SQLite client. I'm guessing you have a different copy
in your path and this caused your original problem. The bin folder is
not the correct place to any file that does not come from us. Many Rad
Studio versions will prevent your product from launching if you do this.
The right solution is to make sure SQLITE3.DLL is in your path. You will
need this when you deploy your application. Most likely, the right place
for SQLITE3.DLL is c:\windows\syswow64. I would note that I would expect
the installer for the SQLite client to do this for you automatically,
but I dunno.

steven chesser wrote:
Ok got it solved... to make it work in the IDE again.

I placed a copy of SQLITE3.DLL into C:\Program Files (x86)\Embarcadero\Studio\16.0\bin

and now it works in the IDE.. no more blowing up.

I had to play with the sources and trace through it to figure it out that was the problem but it works now!

To be honest, not sure how this ever worked then before unless some how a copy of the DLL was just so happen to be somewhere that made Delphi happy and it got killed.

Glad its fixed.. can continue on with things.
steven chesser

Posts: 84
Registered: 7/27/00
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 2, 2015 9:15 AM   in response to: quinn wildman in response to: quinn wildman
quinn wildman wrote:
SQLITE3.DLL is the SQLite client. I'm guessing you have a different copy
in your path and this caused your original problem. The bin folder is
not the correct place to any file that does not come from us. Many Rad
Studio versions will prevent your product from launching if you do this.
The right solution is to make sure SQLITE3.DLL is in your path. You will
need this when you deploy your application. Most likely, the right place
for SQLITE3.DLL is c:\windows\syswow64. I would note that I would expect
the installer for the SQLite client to do this for you automatically,
but I dunno.

I ended up moving it to the syswow64 folder.

My biggest problem was that I couldn't do any SQLITE3 stuff in the IDE itself.. Exception errors everywhere.

Instead of maybe a clean error saying SQLITE3.DLL not found.. initalized.. whatever... Instead of AV errors.

Problem all stemmed from a few weeks ago when work got me involved in testing CEROD with FireDac...
Which ended up me wiping out SQLITE3.DLL's from the systems to insure CEROD flavor was being used.

But I am taking it currently that even on a fresh install, there is no included sqlite3.dll with Delphi so the IDE can
work with it.

Which that I am fine with, if they would make it more apparent that maybe thats the issue that file is missing or whatever
vs AV errors.

In the end.. simple fix.. plop file into syswow64 folder... and move on. But it would be nice to have the IDE not crap out everywhere due to this.
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 5, 2015 8:33 AM   in response to: steven chesser in response to: steven chesser
In the past, when the SQLite client was not found you got an error
indicating so. I don't think that has changed. So, I believe you have a
different one which caused your AV's.

steven chesser wrote:
Instead of maybe a clean error saying SQLITE3.DLL not found.. initalized.. whatever... Instead of AV errors.
quinn wildman

Posts: 856
Registered: 12/2/99
Re: Delphi 10 - DBX SQLite External Exceptions
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 5, 2015 8:36 AM   in response to: steven chesser in response to: steven chesser
This is the support article I wrote long ago that discusses the error
that occurs when a dbexpress client cannot be found ...

steven chesser wrote:
My biggest problem was that I couldn't do any SQLITE3 stuff in the IDE itself.. Exception errors everywhere.
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02