Удаление записи из временной таблицы
В некоторых случаях временная таблица, с которой вы работаете, может содержать больше данных, чем вы хотите вернуть клиенту. В таком случае вы можете удалить лишние записи.
Синтаксис удаления текущей записи:
delete <tt-name>.
<tt-name>, имя временной таблицы, из которой вы удаляете запись в пределах блока
Пример перебора и удаления
Рассмотрим полностью реализованный метод GetData (). Он считывает данные из файла JSON в набор данных dsCustomerBE. Если строка фильтра пуста, он просто возвращает набор данных клиенту. Если фильтр не пуст, он определяет диапазон номеров клиентов (используя переменные Num1 и Num2 ), для которых требуются данные. Перебирает записи ttCustomer. Если значение ttCustomer.Customer выходит за пределы допустимого диапазона, то запись ttCustomer удаляется. Набор данных возвращается клиенту с правильным подмножеством записей ttCustomer в наборе данных.
method public void GetData( input pFilter as character, output phds as handle ):
define variable Num1 as integer no-undo.
define variable Num2 as integer no-undo.
phds = dataset dsCustomerBE:handle.
phds:read-json("file", "C:\OpenEdge\WRK\myExample.json", "empty").
if pFilter <> "" then
do:
/* pFilter содержит :
"CustNum >= Num1 AND CustNum <= Num2"
Необходима фильтрация данных из набора данных,
содержащих данные клиентов из указанного диапазона.
*/
ParseFilter(input pFilter, output Num1, output Num2).
for each ttCustomer where ttCustomer.CustNum < Num1 or ttCustomer.CustNum > Num2:
delete ttCustomer.
end.
end.
return.
end method.
