|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от kit22
Добрый! Дело в том, что у меня в этом поле может храниться много query.pack(). Заполнение поля идет следующим образом
X++: this.containerField += 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); } } Последний раз редактировалось Cardagant; 11.08.2013 в 00:39. |
|
|
|
| За это сообщение автора поблагодарили: kit22 (1). | |
|
|
#2 |
|
Участник
|
Спасибо! Действительно работает, хотя и немного искусственно
Но других способов не нашел. Странно, что conpeek падает на сравнение. Видимо, дело в том, что query.pack() пакуется как контейнер с BLOB данными.
|
|
|
|
|
#3 |
|
Участник
|
Цитата:
Может кто-то предложит более красивый вариант решения данной задачи. Рад помочь!
|
|
|
|
|
#4 |
|
Участник
|
Цитата:
Напрашивается один простой способ: X++: if (
query1.dataSourceNo(1).toString() == query2.dataSourceNo(1).toString();
) |
|
|