在 DBGrid 中显示的最后一条记录(底部)之后插入



使用 ClientDataSet 在最后一条记录之后插入的代码应该是什么?

我尝试了以下方法:

cdsSomething.Last;
cdsSomething.Insert:

但它似乎取代了最后一条记录。我相信一定有一个快速的代码。

将记录追加到数据集末尾(更不用说任何索引(的方法Append。您甚至不需要事先致电Last

cdsSomething.Append;

Insert在所选记录之前插入一行,因此使用代码时,新记录应成为倒数第二条记录。

通常,添加的记录(或者实际上任何记录(出现在 DBGrid 中的位置不依赖于用于插入它的数据集操作。

事实上,DBGrid 与这个问题无关,因为它只是根据其当前索引顺序,在 CDS 中添加的位置显示 ClientDataSet 中添加的行。

因此,例如,如果 CDS 包含一个整数 ID 字段,并且其当前索引是此 ID 字段(例如,因为 CDS 的 IndexFieldNames 属性设置为"ID"(,要使添加的行显示在末尾,您需要做的就是将其 ID 值设置为高于 CDS 中的任何现有记录的值。 如果字段的类型为ftAutoInc,这当然会自动发生。

Uwe Raabe对这个问题的回答略有不同。 如果 CDS 没有使用任何索引,他所说的是正确的,因此记录以它们在 CDS 数据文件中出现的物理顺序显示。 但是,如果显示顺序很重要,则依靠物理顺序来确定显示顺序并不一定是一个好主意。 如果是,则使用一个或多个索引字段来确定顺序。

最新更新