Как изменить порядок полей в уже открытой TADODataSet?

у меня есть TADODataSet это загружает некоторые столбцы из БД (SP, но это не имеет значения). е.г:

SELECT A, B, C, D FROM Foo

теперь после Я открываю набор данных, можно ли изменить порядок полей (или поменять их местами) в этом TADODataSet Так, что он будет содержать е.г:

C, D, A, B

Я хочу сделать это без изменения самого текста команды. Возможно ли это?

1 ответов


можно использовать Index свойства TField класс для установки желаемого порядка.

пример:

MyDataset.FieldByName('C').Index := 0;
MyDataset.FieldByName('D').Index := 1;
MyDataset.FieldByName('A').Index := 2;
MyDataset.FieldByName('B').Index := 3;

Это также работает, если поля являются постоянными:

MyDatasetC.Index := 0;
MyDatasetD.Index := 1;
MyDatasetA.Index := 2;
MyDatasetB.Index := 3;