#1 Re: mORMot 2 » mORMot2 (2.3 stable) fail to create x64 package » 2024-11-29 07:34:33

Sorry, just found the cause of an error!

I used source from Release 64 date Oct 16, which different from latest commit (2.3.8998).

in ''mormot.db.raw.sqlite3.static.pas' a condition {$endif CPU32} was move to exclude 'memchr'.

I successfully created both x86/x64 runtime package for 2.3.8998 (not Release 64 statble date Oct 16). using .dpk file posted in GIST above.

Thank you for your grateful supporting.

#2 Re: mORMot 2 » mORMot2 (2.3 stable) fail to create x64 package » 2024-11-29 06:54:57

Yes, in package option > Delphi Compiler > Output - C/C++ > C/C++ Output File Generation is set to "Generate DCU onlys".

I just created gist for my .dpk file.

https://gist.github.com/ThepSamart/4428 … b7390b61ec

This .dpk file was successfully created both x86 / x64 .bpl for mORMot 2.2 but fail for mORMot 2.3 x64 only (success for x86).

What about 'memchr' conflict in 'mormot.db.raw.sqlite3.static.pas' and 'mormot.lib.static.pas'

#3 mORMot 2 » mORMot2 (2.3 stable) fail to create x64 package » 2024-11-28 13:32:32

ThepSamart
Replies: 5

Tried to create .bpl runtime for mORMot 2.3 stable, x86 (32 bit) is fined but x64 (64 bit) is failed.
return message is:

[dcc64 Error] mormot.db.raw.sqlite3.static.pas(1324): E2065 Unsatisfied forward or external declaration: 'memchr'

Using Delphi 10.2.3 update 3

I used .dpr from mORMot 2.2 which can built both x86, x64 with successfully.

Any suggession, please

Edit:

Just dig into source code, mormot.db.raw.sqlite3.static.pas has 'memchr' function (just add in 2.3), which also resided in mormot.lib.static.pas with different declaration.

#4 Re: mORMot 1 » Access violations on ToDataset using mORMot2-2.0.4148 » 2022-10-21 13:09:35

Hi,

The latest release on GitHub (commit 4222) is working as expected.

Thank You and Regards.

#5 Re: mORMot 1 » Access violations on ToDataset using mORMot2-2.0.4148 » 2022-10-19 13:33:31

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.

#6 mORMot 1 » Access violations on ToDataset using mORMot2-2.0.4148 » 2022-10-19 11:27:28

ThepSamart
Replies: 4

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

Board footer

Powered by FluxBB