> but I see what hapened > Whe should decide about buffer alignment > I can use "packed record" instead of "record" then data are as is > But what is your buffer alignment when you fill data in that record? >
>>Search for type_alignments: >>https://github.com/FirebirdSQL/core/blob/master/src/jrd/align.h#L83 >>Adriano This does not help Something is wrong when i add types like - Int64 - SmallInt i tried all alignments Byte, Word, DWord, QWord Bytes are exchanged before this type e.g. pomInt=296401868 {$11AABBCC} pomIntNULL=0 xxxInt2=296401868 {$11AABBCC} xxxInt2NULL=870121472 {$33DD0000} <== here is exchange $33DD should be in iSmall iSmall=0 <== here are exchange iSmallNULL=3150708736 {$BBCC0000} if i remove iSmall and iSmallNull - all values in this record are filled ok this is my record GenRowsInMessage = record start: Integer; startNULL: WordBool; end_: Integer; end_NULL: WordBool; d: DWORD; dNULL: WordBool; t: DWORD; tNULL: WordBool; dt: QWord; dtNULL: WordBool; pomInt: Integer; pomIntNULL: WordBool; xxxInt2: Integer; xxxInt2NULL: WordBool; iSmall: SmallInt; <==problem iSmallNULL: WordBool; start_2: Integer; start_2NULL: WordBool; end2_: Integer; end2_NULL: WordBool; //dtstrLen: SmallInt; dtstr: Array[0..50*4] of AnsiChar; dtstrNull: WordBool; start_3: Integer; start_3NULL: WordBool; end; 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