FetchAll müsste alle Datensätze in den lokalen Cache holen. Lass dir mal mit ShowMessage ein Meldungsfenster anzeigen, und zwar jedesmal wenn er ein Feld hinzufügen soll, also unter folgender Zeile im Quellcode:
Delphi-Quellcode:
if CheckListBox1.Checked[i] then //Soll die gewählte Spalte angezeigt werden?
begin
Du fügst einfach
ShowMessage('i='+IntToStr(i));
ein, dadurch siehst du den Zähler, und du siehst, wieviel Elemente wirklich hinzugefügt werden.