Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#6

Re: [MySQL] überprüfen ob ein Datensatz existiert

  Alt 7. Aug 2005, 23:14
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
  Mit Zitat antworten Zitat