Hier mal der betreffende Codeabschnitt, von dem ich sabbel:
Delphi-Quellcode:
{...}
idAuthor := _myRow[1];
query := PChar('
SELECT name FROM users WHERE id=' + idAuthor);
_mySubRes := mysql_store_result(_myCon);
_mySubRow := mysql_fetch_row(_mySubRes);
Posts[i].author := _mySubRow[0];
mysql_free_result(_mySubRes);
//Ergebnissatz löschen
end;
{...}
{Verbindung schließen oder etwas anderes machen}
end;
Meiner Meinung nach, dürfte man mit diesem Code niemals erfahren, wer denn nun der Autor war...
Irgendwie fehlt da doch noch ein "mysql_real_query(_myCon,
query, Length(
query));" vor dem mysql_store_result, oder irre ich mich da jetzt?
Um nochmal kurz darauf zurückzukommen:
Zitat von
Wormid:
(Ich gehe jetzt eh mal davon aus, das die Subquery nur aus Demo-Zwecken eingebaut wurde, oder?)
Ich würde die oben beschriebene Aufgabe wahrscheinlich eher mit folgendem Statement lösen:
SQL-Code:
SELECT posts.id, author, name, date, entry
FROM posts, users
WHERE users.id = posts.id
ORDER BY posts.id
Der Vorteil ist der, das nicht für jeden Datensatz 2 Abfragen gestartet werden müssen.... (Performance!) Aber wie ich schon sagte, gehe ich eigentlich davon aus, das das bekannt ist und das die 2te Abfrage nur aus Demonstrationsgründen eingebaut wurde. (Weil manchmal geht es ja in der Tat nicht anders...)
Gruß,
Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.