Код: Выделить всё
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>
, который хорошо работал в течение многих лет, в Delphi, а также в Лазаре с исполняемым файлом Windows. Я использую те же библиотеки Libmysql и Libmariadb в Windows, что и на Linux. Теперь, когда я составляю один и тот же код в Lazarus для Linux и запускаю его, TMYSQL_Lengths >>fieldno LengthsPointer[fieldno]
0 2
1 0
2 10
3 0
4 3
5 0
6 1024
7 0
< /code>
В документации четко указывается, что они должны быть без знака длинных целых чисел, даже для новейших версий. Поэтому я предполагаю, что делаю что -то не так. Я?
Подробнее здесь: https://stackoverflow.com/questions/794 ... arus-linux
Мобильная версия