Das Problem liegt nicht darin, dass das Array Posts die Länge 0 hat, dann würde High nämlich einfach -1 zurückliefern und alles wäre ok. Die
AV kommt ja außerdem aus der libmysql.dll und nicht aus der Anwendung.
Hier verhält es sich so, dass _myRes Nil ist, wenn die Ergebnismenge leer ist. Der darauffolgende Aufruf von mysql_num_rows() mit Nil als Argument führt zu der
AV.
Abhilfe:
Delphi-Quellcode:
query := '
SELECT * FROM user WHERE email="'+email+'
"';
mysql_real_query(_mycon,
query, Length(
query));
_myRes := mysql_store_result(_mycon);
If Assigned(_myRes)
Then Begin // nur weitermachen, wenn was da ist
SetLength(Posts, mysql_num_rows(_myRes));
for i:= 0
to High(Posts)
do begin
_myRow := mysql_fetch_row(_myRes);
...
end;
End;
Gruß, teebee