如何更改已打开的TADODataSet中的字段顺序?

zig*_*zig 6 delphi ado

我有一个TADODataSet从DB加载一些列(一个SP,但这没关系).例如:

SELECT A, B, C, D FROM Foo
Run Code Online (Sandbox Code Playgroud)

现在,我打开数据集后,是否可以更改字段的顺序(或交换它们),TADODataSet以便它包含例如:

C, D, A, B
Run Code Online (Sandbox Code Playgroud)

我想在不更改命令文本本身的情况下执行此操作.可能吗?

Joh*_*ley 9

您可以使用类的Index属性TField来设置所需的顺序.

例:

MyDataset.FieldByName('C').Index := 0;
MyDataset.FieldByName('D').Index := 1;
MyDataset.FieldByName('A').Index := 2;
MyDataset.FieldByName('B').Index := 3;
Run Code Online (Sandbox Code Playgroud)

如果字段是持久的,这也有效:

MyDatasetC.Index := 0;
MyDatasetD.Index := 1;
MyDatasetA.Index := 2;
MyDatasetB.Index := 3;
Run Code Online (Sandbox Code Playgroud)