>>It would be easy if you share your current code in a github.
>>Adriano
Nothing to share for this little problem ;-)
try this:
//bufor
GenRowsInMessage = Array[0..100] of Byte;
//proc in db
create procedure gen_rows_pascal (
iValue integer not null,
sValue Smallint not null,
iValue2 integer not null,
iValue3 integer not null
) returns (
result integer not null
)
external name 'pascaludr!gen_rows'
engine udr;
//select statement
SELECT p.RESULT
FROM GEN_ROWS_PASCAL (
296401868, /* iValue 11AA BBCC */
13277, /* sValue 33DD */
582733021, /* iValue2 22BB CCDD */
582733021 /* iValue3 22BB CCDD */
) p;
content of GenRowsInMessage array
($CC, $BB, $AA, $11, 0, 0, $DD, $33, 0, 0, 0, 0, $DD, $CC, $BB, $22, 0, 0,
0, 0, $DD, $CC, $BB, $22, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
0, 4, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, $FF, $FF, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 8, 0, 2, 0, 0, 0, 0, 0, $74, $1B, $54, 8, 0, 0, 0, 0,
9, 0, 4, 0, 0, 0, 0, 0, $70, $1B, $54, 8, 0)
as you can see alignment has nothing to do - this is not record but array of
bytes
and here we have
$CC, $BB, $AA, $11, 0, 0, <== iValue
$DD, $33, 0, 0, 0, 0, <== sValue
$DD, $CC, $BB, $22, 0, 0, 0, 0, <== iValue2
why iValue2 have 4 zeros? not two as iValue?
This is not "Delphi compiler problem" but buffer fill - what do you think?
regards,
Karol Bieniaszewski
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel