|
|
|
подскажите хитрый update ?
|
|||
|---|---|---|---|
|
#18+
vfp 8.0 есть таблица в гриде: товар-группа-заказ-flag причем список товаров и групп полный из справочника товаров, а заказ только на конкретные товары. надо отфильтровать строки с группами товара, по которым есть хотя бы один заказ на товар внутри группы. использую доп поле flag, которое при постоении таблицы ставлю в 1 с помощью scan-а SELECT temp1 GO top SCAN FOR zak<>0 - заказ не 0 vn_a=temp1.s_name - группа товара xcv=RECNO('temp1') UPDATE temp1 SET flag=1 WHERE s_name=vn_a GO (xcv) ENDSCAN set filter to flag=1 но на больших списках скан долго работает - может есть какой-либо способ сделать это одним оператором update без использования скана ? - подскажите плиз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 11:02 |
|
||
|
подскажите хитрый update ?
|
|||
|---|---|---|---|
|
#18+
gotkovfp 8.0 есть таблица в гриде: товар-группа-заказ-flag причем список товаров и групп полный из справочника товаров, а заказ только на конкретные товары. надо отфильтровать строки с группами товара, по которым есть хотя бы один заказ на товар внутри группы. использую доп поле flag, которое при постоении таблицы ставлю в 1 с помощью scan-а SELECT temp1 GO top SCAN FOR zak<>0 - заказ не 0 vn_a=temp1.s_name - группа товара xcv=RECNO('temp1') UPDATE temp1 SET flag=1 WHERE s_name=vn_a GO (xcv) ENDSCAN set filter to flag=1 но на больших списках скан долго работает - может есть какой-либо способ сделать это одним оператором update без использования скана ? - подскажите плиз... ИМХО, ускорение можно получить и используя SCAN. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 11:42 |
|
||
|
подскажите хитрый update ?
|
|||
|---|---|---|---|
|
#18+
2 Станислав и вашем и в моем случае принцип одинаков, только вы дергаете нужное в другую таблицу, и скан идет по ней, я не трачу время на этот селект и иду по той-же таблице по условию zak<>0 в обоих случаях кол-во обработанных строк в скане одинаково а насчет set filter - таблица примерно 30 тыс наименований - не сильно то и много, у меня в форме с этим гридом много фильтров на переключателе все прекрасно работают даже с условием 'ххх'$товар ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 12:12 |
|
||
|
подскажите хитрый update ?
|
|||
|---|---|---|---|
|
#18+
gotko2 Станислав и вашем и в моем случае принцип одинаков, только вы дергаете нужное в другую таблицу, и скан идет по ней, я не трачу время на этот селект и иду по той-же таблице по условию zak<>0 в обоих случаях кол-во обработанных строк в скане одинаково а насчет set filter - таблица примерно 30 тыс наименований - не сильно то и много, у меня в форме с этим гридом много фильтров на переключателе все прекрасно работают даже с условием 'ххх'$товар А немного подумать? У меня на VFP9 идет вполне себе нормально: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2008, 12:25 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35229531&tid=1587949]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 286ms |

| 0 / 0 |
