Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.039 c
2-1163170682
&amp;#179;&amp;#178;&amp;#179;
2006-11-10 17:58
2006.11.26
TTimer


4-1152899610
TWINc
2006-07-14 21:53
2006.11.26
WinProc


1-1160920315
guav
2006-10-15 17:51
2006.11.26
UI: Выделение с прокруткой.


15-1162996386
oldman
2006-11-08 17:33
2006.11.26
Нет ли устройства по перекодирования сигнала?


2-1162983893
Fedia_l
2006-11-08 14:04
2006.11.26
Ввод даных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский