Was für einen Datenbankcursor nutzt du. Ich weiss nicht was es bei
MySQL an Einstellungen gibt, aber bei anderen Serversystemen ist es nicht irrelevant, wie die Daten zum Client übertragen werden.
Andere Fehlerquelle kann das DBGrid selbst sein. Hatte ich auch mal mit Komponenten von Drittanbietern, insbesondere wenn es um die grafische Darstellung der Daten im Grid ging. Wenn dein Recordcount stimmt, scheint der Datensatz ja auch nur einmal drin zu sein. Kannst ja mal noch zusätzlich versuchen, durch eine while not EOF Schleife alle IDs der Datensätze in einer Listbox zu speichern und das Ergebnis mit deinem DBGrid zu vergleichen