Page 1 of 1
EAssertionFailed
Posted: Mon 24 Feb 2014 14:20
by Andidreas
Hi,
last week I've updated my UniDac Version from 4.2.7 to 4.6.12
In my current Project we're using DLLs.
The Main Program has the DB Connection and if we call/open a DLL we're handover the Connection from the Main Program to the DLL.
Now I get every time the following Exception:
EAssertion failure
Assertion failure (D:\Projects\Delphi\Dac\Common\source\DBAccess.pas, line 6705)
This Error is a little bit strange for me, because the folder in which the DBAccess.pas should be located doesn't exists on my Computer!
Pls help asap!
Re: EAssertionFailed
Posted: Mon 24 Feb 2014 14:48
by Andidreas
I have this Problem with various DB's
In this Project I'm using:
- SQLite Memory
- SQLite File
- MS SQL
Re: EAssertionFailed
Posted: Tue 25 Feb 2014 07:46
by AlexP
Hello,
You are using an obsolete UniDAC version, this problem cannot be reproduced on the latest UniDAC version 5.2.6. Please download the latest UniDAC version and try to reproduce the problem again
Re: EAssertionFailed
Posted: Tue 25 Feb 2014 10:24
by Andidreas
Today we've installed the latest Version of the UniDac.
Now we not get the EAssertionFailed Error, but we get now an Access Violation Error:
Access Violation at adress 00614E78 in module xxx.exe
As I wrote in the first Post, we handover the Connection to the DLL.
In our DLL we have no Visual UniDac Component. We create the UniQuery Components dynamically and link the Queries to the Connection which we handover in the DLL.
Maybe this Informations are also helpfull for you?!
Re: EAssertionFailed
Posted: Tue 25 Feb 2014 13:33
by AlexP
The problem can be due to transferring objects to DLL. UniDAC contains an example of work with dll (..\Devart\UniDAC for XXX\Demos\Miscellaneous\Dll\). To transfer connection between the application and Dll, the AssignConnect method should be used, but not explicit assigning or the Assign basic method.
Re: EAssertionFailed
Posted: Sun 11 Jan 2015 19:17
by nilsonbrazil
Hello,
I have the opposite problem:
I would like to create connections on dll side and use that connections in .EXE and other dlls.
I tried this pattern on EXE side:
------------
var
con, c : TUniConnection;
begin
c := DllFunctionThatCreatesTheConnection(parameters);
if assigned(c) then begin
con := TUniConnection.Create(nil);
con.AssignConnection(c); //Exception "Cannot assign a TStringList to a TStringList"
end;
----------
Everything works well using the same Dllfunction directly on EXE side.
Details:
Delphi XE5
Unidac 6.0.1
FastMM4 (instead of ShareMem)
The snippet above is inside a Indy IdHttpServer OnCommandGet event (and therefore out of the MainThread).
Re: EAssertionFailed
Posted: Mon 12 Jan 2015 06:34
by AlexP
Hello,
Please send a sample of the library and application reproducing the problem to support*devart*com. Also, please specify the exact version of UniDAC and IDE.
Re: EAssertionFailed
Posted: Fri 04 Nov 2016 15:15
by neiln
I am getting this error with UniDAC 6.2.10 for Delphi 7. Oddly, it was working several months ago but after making massive changes to my code to convert everything to UniDAC I started getting this error in my DLLs. My DLL works if I create a new TUniConnection, assign the properties of the passed connection and call its Connect method. And the connection I'm passing works at the time I pass it.