Цитата:
Сообщение от
kit22
Добрый! Дело в том, что у меня в этом поле может храниться много query.pack(). Заполнение поля идет следующим образом
X++:
this.containerField += query.pack()
То есть мне надо узнать, есть ли в этом поле уже данный запрос, а в поле, например, хранится уже 4 query.pack() и пришел новый query.pack(). И мне не надо записывать query.pack() в это поле, если он уже есть там.
Для проверки данного запроса на наличие в поле таблицы придумал вот такой способ:
X++:
static void EqualQueries(Args _args)
{
// Таблица, содержащая контейнер запроса AssetTable
QueryTable myQueryTable;
container containerField;
// AssetTable - Эквивалентны
container packedQuery = new Query(querystr(AssetTable)).pack();
// AxdAddress - неэквивалентны
// container packedQuery = new Query(querystr(AxdAddress)).pack();
;
// Наполнил исходными данными
/*
containerField += (new Query(querystr(AssetTable)) .pack());
containerField += (new Query(querystr(AssetBudgetModel)).pack());
containerField += (new Query(querystr(AssetProposal)) .pack());
containerField += (new Query(querystr(AxdExpense)) .pack());
myQueryTable.QueryCon = containerField;
myQueryTable.write();
*/
select firstonly myQueryTable;
containerField = myQueryTable.QueryCon;
// Сравниваю
while (conlen(containerField))
{
if (new Query(containerField).pack() == packedQuery)
{
info("Equal");
}
containerField = condel(containerField, 1, 1);
}
}