You are not logged in.
I got access violation using latest release mORMot2-2.0.4148.
An exception are in TSqlDBProxyStatementRandomAccess.Create() and TSqlDBStatementWithParamsAndColumns.Create().
TSqlDBProxyStatementRandomAccess.Create() passed aConnection as nil to TSqlDBStatementWithParamsAndColumns.Create(), so testing for aConnection will raise error.
This is not occurred in previous release mORMot2-2.0.3780.
code: Reproducible Example
Offline
(which compiler are you using?)
The whole memory release pattern seems pretty unsafe.
Calling z_conn.Free is too soon for sure.
Perhaps missing i_rows := nil and perhaps also TAutoFree not possible ?
See as reference https://synopse.info/files/html/Synopse … l#TITL_195
Offline
Sorry for the code provided, it's for testing only.
I use Delphi 10.2.3 Tokyo.
Could you examine code in mormot.db.proxy or trace back thru ToDataset() function.
constructor TSqlDBProxyStatementRandomAccess.Create(Data: PByte; DataLen: integer;
DataRowPosition: PCardinalDynArray; IgnoreColumnDataSize: boolean);
var
i, f: PtrInt;
reader: PByte;
begin
fLastGotoRow := -1;
inherited Create(nil);
InternalHeaderProcess(Data, DataLen);
The constructor inherited Create(nil) that passed thru
constructor TSqlDBStatementWithParamsAndColumns.Create(
aConnection: TSqlDBConnection);
so aConnection was passed as nil. This could be the cause.
Offline
The culprit is clearly https://github.com/synopse/mORMot2/comm … 20cd7a5c62
Should be fixed by https://github.com/synopse/mORMot2/commit/7d1d8f62
Sorry for the issue.
Offline
Hi,
The latest release on GitHub (commit 4222) is working as expected.
Thank You and Regards.
Offline