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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Александр В.
Прохожий
Сообщения: 2
Зарегистрирован: 04 Октябрь 2007, 13:52
Откуда: Россия, Новосибирск

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

Сообщение Александр В. »

Имеем С5.5 EE. Всё просто...Нужно через EMBEDS удалить записи в файле, у которых определенное поле равно 0.
Заранее спасибо. Я не программер...
Apron63
Новичок
Сообщения: 14
Зарегистрирован: 21 Октябрь 2007, 16:42
Откуда: Самара

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

Сообщение Apron63 »

Удобнее всего создать новую одноразовую процедуру Process, установить Action=Delete Record и фильтр для записей. Так быстрее и проще. Или нужен "чистый" код?
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Сообщение 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
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

Сообщение Igor »

Но знай . Записи в одном файле удалятся но если в словарике(расширение NameApp.dct) есть связи с этим файлом то лучше не спеши :cry: .Посмотри может надо делать Relate:TPSFiles.Delete.
Александр В.
Прохожий
Сообщения: 2
Зарегистрирован: 04 Октябрь 2007, 13:52
Откуда: Россия, Новосибирск

Сообщение Александр В. »

спасибо. Помогло через Process. Пришлось повозиться, т.к. у пустого (нулевого) поля был ключ уникальный. Принципиально Клара не хотела фильтровать.
Ответить