IDatasetBatchUpdate.KeyFieldNames

Синтаксис

KeyFieldNames: String;

Описание

Свойство KeyFieldNames определяет список ключевых полей по значениям которых, будет осуществляться поиск обновляемых записей.

Комментарии

Поля в списке разделяются знаком ";". Искомые значения будут браться из буфера.

Пример

Для выполнения примера предполагается наличие в репозитории таблицы с идентификатором "Table_1". В таблице имеется три целочисленных поля.

Sub Main;

Var

MB: IMetabase;

Dsi: IDatasetInstance;

Fields: IDatasetInstanceFields;

Dbu: IDatasetBatchUpdate;

Vals: Array[0..2] Of Variant;

i: Integer;

Begin

MB := MetabaseClass.Active;

Dsi := MB.ItemById("Table_1").Open(Null) As IDatasetInstance;

Fields := Dsi.Fields;

Dbu := Dsi.CreateBatchUpdate;

Dbu.BatchCommand := DatasetBatchCommand.Update;

Dbu.KeyFieldNames := Fields.Item(0).Id;

Dbu.BeginUpdate;

While Not Dsi.Eof Do

i := Fields.Item(0).Value As Integer;

If i > 100 Then

Vals[0] := i;

Vals[1] := Fields.Item(1).Value;

Vals[2] := (i + (Fields.Item(1).Value As Integer)) * 100;

Dbu.AddRecord(Vals);

End If;

Dsi.Next;

End While;

Dbu.Commit;

End Sub Main;

После выполнения примера в таблице будут обновлены записи, значения первого поля которых, больше 100. Поиск существующих записей будет производиться по значениям первого поля. При обновлении будет изменено значение третьего поля с учетом значений предыдущих двух полей.

См.также:

IDatasetBatchUpdate