Прошло очень много времени с тех пор, как я прикоснулся к Delphi, но я помню пару вещей, которые я делал раньше.Например,
select top 0 * from table
возвращает 0 записей, но TQuery «заполняется» метаданными.Или я думаю, что в TClientDataSet вы можете установить для строк значение -1, что имеет тот же эффект.
Как я уже говорил, я давно работал в Delphi и использовал BDE, а не nativeклиенты, так что это может быть бесполезной информацией.
Надеюсь, это немного поможет.