Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Внизработа с двумя таблицами выручайте Найти похожие ветки
← →
V.I.P © (2006-11-07 11:10) [0]Есть таблица BDE с запчастями, такая:
ID | name | kol-vo | price
и с запчастями на заявку
ID | ID_3a9Bku | ID_3an4aCTu | kol-vo
все это через DBGrid и управление DBnavigator
Задача, чтобы при добавлении строки в последнюю таблицу, 3 штуки скажем, делалась проверка на наличие 3 шт на складе (верхняя таблица), и если они есть, то вычиталось со склада. И обратное, при удалении/изменении значения кол-во прибавлялось/удалялось.
ВЫРУЧАЙТЕ
← →
Percent (2006-11-07 11:13) [1]Есть таблица BDE с запчастями
Смеялсо... :-)
Задача, чтобы при добавлении строки в последнюю таблицу, 3 штуки скажем, делалась проверка на наличие 3 шт на складе (верхняя таблица), и если они есть, то вычиталось со склада. И обратное, при удалении/изменении значения кол-во прибавлялось/удалялось.
Прибавление - "+"
Вычитание - "-".
← →
Sergey13 © (2006-11-07 11:22) [2]> [0] V.I.P © (07.11.06 11:10)
Все, разумеется, крутится на Оракле?
← →
V.I.P © (2006-11-07 11:32) [3]Sergey13
> Все, разумеется, крутится на Оракле?
> <Цитата>
Нет..
Percent
ты лучше подскажи как обработчик напсать..
← →
Percent (2006-11-07 11:37) [4]ты лучше подскажи как обработчик напсать..
Ага... "ты не умничай, ты пальцем тыкни!" (С) Анекдот?
:-)
Ты так и не ответил, что у тебя за БД.
И, насколько я понял, ты даже и не брался писать сам.
Напиши код, как считаешь нужным.
Попробуй откомпилировать и выполнить.
Будут конкретные проблемы - тогда и спрашивай.
А запросы типа "дайте готовый код под мою задачу" - не проходят... понимаешь?
← →
V.I.P © (2006-11-07 11:40) [5]Percent
я себе даж не представляю как это сделать, чтобы предложить свое. Не хочешь помочь, как хочешь. Дело твое.
БД - BDE, paradox
← →
Anatoly Podgoretsky © (2006-11-07 11:54) [6]
> ты лучше подскажи как обработчик напсать..
Нафиг здесь обработчик, тут запрос с Count нужен и возможно с Having
← →
Anatoly Podgoretsky © (2006-11-07 11:54) [7]
> БД - BDE, paradox
Тогда тебе в LocalSQL
← →
ЮЮ © (2006-11-07 12:03) [8]Так как в этой субд нет триггеров, то подобная задача не решаема, т.к.
1) достут возможен не только из твоей программы
2) транзакций в БДЕ практически нет.
Поэтому kol-vo в таблице с запчастями лучше не трогать.
Обять же как ты намерян пополнять его?
← →
V.I.P © (2006-11-07 12:08) [9]
> ЮЮ © (07.11.06 12:03) [8]
> Так как в этой субд нет триггеров, то подобная задача не
> решаема, т.к.
> 1) достут возможен не только из твоей программы
> 2) транзакций в БДЕ практически нет.
>
> Поэтому kol-vo в таблице с запчастями лучше не трогать.
> Обять же как ты намерян пополнять его?
через query и язык SQL ну типа insert\update
← →
ЮЮ © (2006-11-07 12:20) [10]Ну и что мешает тебе использовать язык SQL ну типа insert\update сейчас?
в AfterScroll DataSet-а заявок запоминаешь ключ и значение
В AfterPost для вставленных и измененных и
в AfterDelete для удаленных выполняешь
UDATE ... SET kolvo = kolvo + :Delta WHERE ...
← →
V.I.P © (2006-11-07 12:30) [11]ЮЮ
да ничего не мешает, я принцип не знаю...как программе указать. если изменили значение, то проверить склад и разрешить измнение, и при удалении вернуть запчасти на склад, а при добавлении строки, проверить склад, и добавить нужное
← →
V.I.P © (2006-11-07 13:55) [12]ЮЮ поможешь?
← →
V.I.P © (2006-11-07 22:11) [13]такой вопрос, если писать BeforeInsert
то как должен выглядеть запрос?
select kol-vo from table1 where ID=id => чем что? (надо чтобы было больше/равно чем вводимое число в grid
← →
ЮЮ © (2006-11-08 04:03) [14]
> ЮЮ поможешь?
Разница в часовых поясах слишком большая :)
В BeforeInsert не советовал бы. Пользователь может отказаться от сохранения в гриде заказа, да и пуста ещё запись заказа в этом обработчике.
В [10] я вроде все написал.
Единственно, в BeforePost можно проверить
> select kol-vo from table1 where ID=id => чем что?
>= DataSet.FieldByName["kolvo"].AsXXX
А в AfterPost ещё раз проверить, что >= 0. Иначе - конкуренция. Откатить изменения в таблице и DataSet-e
P.s. kol-vo я бы интерпретировал как разницу значений полей kol и vo. При именовании полей следует придерживаться тех же правил, что и для идентификаторов
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c