Subject Re: FreePascal client access errors
Author hvlad
--- In firebird-support@yahoogroups.com, "realjimbeam" <realjimbeam@...> wrote:
>
> Hi all,
>
> I wonder if this is the right group to post questions regarding problems with accessing Firebird 2.1.3 using the FreePascal compiler (64 bit) on Windows. FreePascal support guys suggest the client library/embedded Firebird is crashing.
>
> Couldn't find a dedicated FreePascal or Delphi group; these problems also occur on 2.5/3.0 snapshots.
> More details:
> http://mantis.freepascal.org/view.php?id=17360
> and
> http://bitbucket.org/jb/flocate/issue/6/firebird-database-exceptions-dont-generate-eibdatabaseerror-but-a-general-exception-on-64-bit

Such questions should be asked in fb-devel list.

After quick look at ibase40.pp i found that it defines ISC_STATUS as Long. There should be sizeof(ISC_STATUS) = sizeof(Pointer), i.e. ISC_STATUS should be 4-byte on 32-bit and 8-byte on 64-bit.
I don't know what is Long in FreePascal but guess it is always defined as 4-byte integer, correct ?

Also look at ibase60.inc:

Type
...
ISC_STATUS = clong; // wrong for x64
ISC_INT64 = clonglong;


Regards,
Vlad