|
|
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
PB 9.0 Имеются два DS или DW, закачанные примерно одинаковым содержимым. Например, снимки оглавлений одного и того же каталога после ряда изменений или два прайс-листа, один из которых создан на основании другого. Типы полей и структуры полностью совпадают. Ряд записей добавлен, ряд удалён, кое-какие поля изменены. Существует ли простой и изящный , в несколько строк и безо всяких циклов получить их разницу (типа как в Нортоне команда "Сравнить каталоги")? Заранее благодарю за нетривиальные советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 00:56 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
может решить с помошью языка SQL? таблицы tbl1 (id1, str1, num1), tbl2 (id2, str2, num2) Код: plaintext 1. 2. (сделано в уме, не проверено) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 13:41 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
savosin_sergeyможет решить с помошью языка SQL? таблицы tbl1 (id1, str1, num1), tbl2 (id2, str2, num2) Код: plaintext 1. 2. (сделано в уме, не проверено) если селектом то уже лучше юзать MINUS или INTERSECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 14:46 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Астралопитек давал повод заподозрить его в использовании Oracle? Или у нас теперь негласное правило - если не указан город подразумевается Москва, если не указана DBMS подразумевается Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2005, 18:33 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
INTERSECT есть и в ASA 9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 01:52 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
нетривиальный совет: сбрасывать содержимое DW в файлы и сравнивать их хоть в ворде, хоть с помощью fc Вот например как ворд красиво сравнивает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 02:06 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Извините, я думал, что у нас если не указана DBMS, то подразумевается SYBASE и конкретно ASA . Указываю: ASA 8. К остальным: Спасибо, но лично я считал в данном случае использование SQL или внешних файлов именно тривиальным решением. Так же как ХП. Очень интересно было бы узнать, есть ли решение на стороне клиента и именно с использованием каких-либо функций про DS, DW, буфера и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 02:54 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Вдогонку: Это интересно потому, что на самом деле эти DW не простые таблицы, а доступные пользователю. В частности он может там фильтровать, а тажке задавать (на доступном ему пользовательском уровне) некоторое условие WHERE (например, устанавливая галки на некоторых строках; а потом указывая, среди кого сравнивать: среди отмеченных или среди НЕотмеченных. И т.п.) Буду очень благодарен за рекомендации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2005, 02:59 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Загляни сюда (JFC.rar) , правда данный объект я использовал для сравнения ResultSet'ов DW, но может какие мысли подойдут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 09:20 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Estets Спасибо. Это не совсем то -- всё-таки используются внешние файлы -- но я тоже не увидел, как без них обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 15:06 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Астралопитек Вдогонку: Это интересно потому, что на самом деле эти DW не простые таблицы, а доступные пользователю. В частности он может там фильтровать, а тажке задавать (на доступном ему пользовательском уровне) некоторое условие WHERE (например, устанавливая галки на некоторых строках; а потом указывая, среди кого сравнивать: среди отмеченных или среди НЕотмеченных. И т.п.) Буду очень благодарен за рекомендации. Самый простой путь - использовать "галки" и всю прочую "муть" для генерации SQL с операторами UNION-MINUS-INTERSECT (выше уже рекомендовали). И не надо ничего сравнивать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 15:34 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
А что если так. Создается третье ds_3 аналогичное по полям двум сравниваемым. В него при помощи rowscopy заказчивается содержимое двух исходных ds. Далее ds_3.sort(), ds_3.groupcalc() Теперь о том как должен быть устроен результирующий ds_3. - в нем должен быть определен group по ВСЕМ сравниваемым полям. - сортировка по ВСЕМ сравниваемым полям. - detail height= 0 - detail autosizeheight= true - в отображаемых столбцах height= if( count( #1 for group 1)= 1, 64, 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 16:34 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
2:Астралопитек Объект который я прислал сравнивает два позиционированных массива... это я к тому что простого алгоритма сравнения скорее всего не получится, возникнет желание посмотреть а в какой из колонок в этой строке изменились данные и пр. А если задача стоит как в нортоне то это два цикла по 1dw и 2dw с учетом выделения и с FIND() в 2dw и 1dw соответственно. Построить выражение FIND можно автоматически на основании структуры DW. Если не нашли в другом DW аналогичную строку, то считаем ее новой и подсвечиваем. Если строка изменилась то она будет подсвеченна в обоих DW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 18:12 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
gz Астралопитек Вдогонку: Это интересно потому, что на самом деле эти DW не простые таблицы, а доступные пользователю. В частности он может там фильтровать, а тажке задавать (на доступном ему пользовательском уровне) некоторое условие WHERE (например, устанавливая галки на некоторых строках; а потом указывая, среди кого сравнивать: среди отмеченных или среди НЕотмеченных. И т.п.) Буду очень благодарен за рекомендации. Самый простой путь - использовать "галки" и всю прочую "муть" для генерации SQL с операторами UNION-MINUS-INTERSECT (выше уже рекомендовали). И не надо ничего сравнивать Спасибо; но тогда начинается геморрой с пользователями. Хотелось бы эти галки не заносить обратно в базу, а использовать только на стороне клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2005, 04:33 |
|
||
|
Сравнение двух DS или DW
|
|||
|---|---|---|---|
|
#18+
Estets 2:Астралопитек Объект который я прислал сравнивает два позиционированных массива... это я к тому что простого алгоритма сравнения скорее всего не получится, возникнет желание посмотреть а в какой из колонок в этой строке изменились данные и пр. А если задача стоит как в нортоне то это два цикла по 1dw и 2dw с учетом выделения и с FIND() в 2dw и 1dw соответственно. Построить выражение FIND можно автоматически на основании структуры DW. Если не нашли в другом DW аналогичную строку, то считаем ее новой и подсвечиваем. Если строка изменилась то она будет подсвеченна в обоих DW. Ещё раз спасибо. Это очень близко к тому. что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2005, 04:35 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33024250&tid=1338378]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 354ms |

| 0 / 0 |
