Hello Michael,

this has been fixed in the 8.0-patches branch of Zeos. Please check the SVN:
https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/8.0-patches/
or GIT repository:
https://github.com/marsupilami79/zeoslib/tree/8.0-patches

Zeos 8.0, as you can download it, is only meant for FPC 3.2.2, not for
the 3.2-fixes branch.

Best regards,

Jan

Am 31.03.2025 um 23:47 schrieb Michael Roland via fpc-devel:

Is the wrong version of the db.pas in fixes_3_2 branch?

The current version of db.pas in fixes_3_2 seems to be from the 3.3.1
branch instead of the 3.2.3 branch.

The 3.3.1 db.pas adds a new enum value ftSingle to TFieldType.

This causes the compilation of ZeosDb 8.0 ZAbstractRODataset.pas to
fail with the error

Error: Expected another 1 array elements.

The ZeosDb source code creates an array of TFieldType, then fills the
array with values.

line 5901 of zeosdbo-8.0.0-stable/src/component/ZAbstractRODataset.pas

"BaseFieldTypes: array[TFieldType] of TFieldType = ("

The error occurs because ZeosDb in not expecting the extra ftSingle
element in free pascal version 3.2, so a value for ftSingle is not
added to the array. The missing ftSingle value produces the array error.

However, ZeosDb does add the ftSingle value for free pascal version
3.3 or higher.

zeosdbo-8.0.0-stable/src/component/ZAbstractRODataset.pas

The ZeosDb source code is checking to see if the extra value ftSingle
is needed in TFieldType (line 5914). If so, it adds and ftSingle entry
to TFieldType.

{$IFDEF WITH_FTSINGLE}

        , ftSingle

{$ENDIF}

The file zeosdbo-8.0.0-stable/src/ZeosLazarus.inc defines WITH_FTSINGLE as

{$IF FPC_FULLVERSION >= 30300}

{$DEFINE WITH_FTSINGLE}

{$DEFINE WITH_FTSHORTINT}

{$IFEND}

So ZeosDb is doing the correct thing.

The fixes_3_2 branch has the correct version in
FPCSource/compiler/version.pas

       { version string }

version_nr = '3';

release_nr = '2';

patch_nr   = '3';

minorpatch = '';

The current db.pas file seems like a breaking change to make in the
fixes_3_2 branch. Was the current db.pas file added to the fixes_3_2
branch for a reason, or was it added unintenionally?

Are any other files from the 3.3.1 branch in the fixes_3_2 branch?

A git bisect of branch fixes_3_2 shows this commit as the source of
the changed db.pas file.

b907920ef392d6b3a2ae02e489577ff869ede235 is the first bad commit

commit b907920ef392d6b3a2ae02e489577ff869ede235

Author: Michaël Van Canneyt <mich...@freepascal.org>

Date:   Mon Feb 14 09:15:30 2022 +0100

    * Patch from Laco to add TSingleField

    (cherry picked from commit c46b45bf72ed7e4522e69611d0a5c5c2f44739c9)

packages/fcl-db/src/base/bufdataset.pas |   4 +-

packages/fcl-db/src/base/db.pas |  56 ++++++-

packages/fcl-db/src/base/dsparams.inc |  23 ++-

packages/fcl-db/src/base/fields.inc | 178 +++++++++++++++++++--

packages/fcl-db/src/base/xmldatapacketreader.pp |   5 +-

packages/fcl-db/src/codegen/fpddcodegen.pp |   2 +-

packages/fcl-db/src/datadict/fpdatadict.pp |   2 +-

packages/fcl-db/src/dbase/dbf_fields.pas |   4 +-

packages/fcl-db/src/export/fpfixedexport.pp |   5 +-

packages/fcl-db/src/export/fprtfexport.pp |   2 +-

packages/fcl-db/src/export/fptexexport.pp |   2 +-

packages/fcl-db/src/memds/memds.pp |   2 +

packages/fcl-db/src/sqldb/odbc/odbcconn.pas |  22 ++-

packages/fcl-db/src/sqldb/postgres/pqconnection.pp |   3 +-

packages/fcl-db/src/sqldb/sqldb.pp |   1 +

packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp |  14 +-

packages/fcl-db/tests/bufdatasettoolsunit.pas |   2 +

packages/fcl-db/tests/memdstoolsunit.pas |   2 +

packages/fcl-db/tests/sqldbtoolsunit.pas |   3 +-

packages/fcl-db/tests/testdbbasics.pas |  43 +++--

packages/fcl-db/tests/testdbexport.pas |   8 +-

packages/fcl-db/tests/toolsunit.pas |   4 +-

packages/fcl-sdo/src/das/sdo_das_utils.pas |  17 +-

packages/fcl-web/src/restbridge/sqldbrestschema.pp |   3 +-

24 files changed, 340 insertions(+), 67 deletions(-)


_______________________________________________
fpc-devel maillist  -fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to