Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > вычитание кол-ва нескольких записей


Автор: DANJAH 3.12.2009, 14:11
суть проблемы такова! 

есть окно с таблицей склад! курсор из sql таблицы склад!
есть ниже вторая временная локальная таблица !

в локальную сбрасывается несколько записей из склада! 
далее при нажатии кнопки все записи должны попадать в таблицу продаж и должен происходить вычет со склада по количеству!


у меня все это делалось так в локальной БД

1.скидывалось в таблицу продаж! 
2.через DO WHILE EOF() проходил по каждой записи временной таблицы, при этом искало(SEEK) её же на складе и отнимая количество!
3.и очистка таблицы

я думаю что в сто раз можно это упростить! вот и спрашиваю можно ли?

Автор: Данкинг 3.12.2009, 14:17
Что значит упростить и что именно упростить? Куда проще, чем находить записи через SEEK ?

Автор: DANJAH 3.12.2009, 14:28
ну как то пачкой можно это сделать? без поиска записей например! без DO WHILE сделать например отношение один ко многим! т.е. много записей из временной таблицы взять количество и вычесть из склада! чтобы это пачкой как то обрабатывалось что ли!

Автор: Данкинг 3.12.2009, 14:39
А, ну, если попробовать связать две таблицы по уникальному полю только, а затем REPLACE'ом заменить.

Автор: DANJAH 3.12.2009, 14:57
точняк! буду пробовать! оченьхороший вариант! smile 

через SET RELATION ща попробую связать!

а как то дальше по коду если один к одному стоит связь, то получается надо REPLACE sklad.kolvo WITH sklad.kolvo-temp.kolvo

правильно я понял?

Автор: DANJAH 3.12.2009, 15:18
чо то не пойму как связь сделать между ними вручную! склад висит на SQL сервере! таблица темп на локальном компе! через чо их связать то и еще по уникальному полю!

Автор: Данкинг 3.12.2009, 15:26
Так если открыть и вьюху и таблицу? Одну в области 5, другую - в области 10, к примеру. smile 

Автор: DANJAH 3.12.2009, 16:01
с отношением вроде бы разобрался! 

при создании отношения он сам находит поля! реплэйс через DO WHILE опять делать или как? ничо не вкурю! 

Автор: DANJAH 3.12.2009, 17:03
вроде все получилось! smile спасибо большое за советы! smile очень признателен! smile

Автор: Данкинг 3.12.2009, 17:04
Цитата(DANJAH @  3.12.2009,  16:01 Найти цитируемый пост)
реплэйс через DO WHILE опять делать или как?

Почему? Replace .... all - все записи и заменятся.

DANJAH, на здоровье. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)