Страница 1 из 1

Удаление записи по условию

Добавлено: 13 Декабрь 2007, 14:11
Александр В.
Имеем С5.5 EE. Всё просто...Нужно через EMBEDS удалить записи в файле, у которых определенное поле равно 0.
Заранее спасибо. Я не программер...

Можно удалять через Process

Добавлено: 13 Декабрь 2007, 16:09
Apron63
Удобнее всего создать новую одноразовую процедуру Process, установить Action=Delete Record и фильтр для записей. Так быстрее и проще. Или нужен "чистый" код?

Добавлено: 13 Декабрь 2007, 17:39
Admin

Код: Выделить всё

Access:TPSFiles.ClearKey(TPF:NameKey)
SET(TPF:NameKey, TPF:NameKey)
LOOP
  IF Access:TPSFiles.Next() <> LEVEL:Benign THEN BREAK END
  IF TPSFiles.Flag = 0
    IF Access:TPSFiles.DeleteRecord(FALSE) = LEVEL:Benign
      ! запись удалена
    ELSE
      ! запись не удалена
    END
  END
END

Добавлено: 13 Декабрь 2007, 19:40
Igor
Но знай . Записи в одном файле удалятся но если в словарике(расширение NameApp.dct) есть связи с этим файлом то лучше не спеши :cry: .Посмотри может надо делать Relate:TPSFiles.Delete.

Добавлено: 14 Декабрь 2007, 14:33
Александр В.
спасибо. Помогло через Process. Пришлось повозиться, т.к. у пустого (нулевого) поля был ключ уникальный. Принципиально Клара не хотела фильтровать.