Die Routine sollte doppelte Nullspalten entfernen (getippt und nicht getestet). D.h. Du liest die
Query ein, jagst das DS durch die Methode und druckst anschließend aus.
Delphi-Quellcode:
Procedure RemoveDuplicateNUllRows (aDataSet : TDataSet; aFieldNameToCheckForNull : String);
var
prevLineWasNull : Boolean;
Begin
aDataSet.Last;
While not aDataSet.Bof do begin
if VarIsNull(aDataSet[aFieldNameToCheckForNull]) then begin
if prevLineWasNull then
aDataSet.Delete;
prevLineWasNull := Not prevLineWasNul;
end
else prevLineWasNull := false;
aDataSet.Prior
end
end;
Du gehst von hinten nach vorne durch und löschst eine leere Zeile, wenn die zuvor besuchte (also, die darunter) auch schon leer war.