zurückgegeben wurden
Code: Select all
type
PMYSQL_LENGTHS = ^TMYSQL_LENGTHS;
TMYSQL_LENGTHS = array[0..4095] of LongWord;
...
mysql_fetch_lengths: function(Result: PMYSQL_RES): PMYSQL_LENGTHS; cdecl;
...
var
LengthsPointer: PMYSQL_LENGTHS;
begin
LengthsPointer := mysql_fetch_lengths(FCurrentResults);
for i:=0 to NumFieldsInResult do
showmessage(IntToStr(LengthsPointer^[i]));
< /code>
Das hat jahrelang gut funktioniert, in Delphi und auch in Lazarus mit einer ausführbaren Windows. Ich verwende dieselben libmysql- und libmariadb -Bibliotheken unter Windows wie unter Linux. Wenn ich nun denselben Code in Lazarus für Linux kompiliere und ihn ausführe, scheint die TMYSQL_LENGHS
fieldno LengthsPointer[fieldno]
0 2
1 0
2 10
3 0
4 3
5 0
6 1024
7 0
< /code>
Die Dokumentation besagt eindeutig, dass dies auch für die neuesten Versionen unsignierte lange ganze Zahlen sein sollte. Ich gehe davon aus, dass ich etwas falsch mache. Tue ich?