Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 12:41   #1
Ярый
 
Регистрация: 02.05.2009
Сообщений: 3
По умолчанию Проверка количества...

Доброго времени суток уважаемые форумчане. В кратце есть 2 таблицы 1
таблица ТОВАРЫ содержащая поля ("АртикулТовара", "НазваниеТовара",
"Количество на складе",) и таблица ПРОДАЖИ с полями ("Номер", "АртикулТовара", "ДатаПродажи", "Количество") Задача состоит в том что бы проверять количество товара на складе и количество товара при продаже. То есть допустим у нас на складе 1шт, а мы пытаемся продать 2шт... сответственно выдать ошибку... Подскажите пожалуйста как это можно сделать в Delphi ?? В DBgrid все данные выводяться с помощью запросов, они только отображабт данные... мб есть какие то функции??
Ярый вне форума Ответить с цитированием
Старый 02.05.2009, 12:47   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

проверить наличие товара когда?

1. при вводе количества в форме продажи
2. при попытке совершить продажу (нажатие кнопки ввод в форме продажи)
3. при записи информации о продаже в БД

DBGrid (а правильнее TxxxTable или TxxxQuery) уже имеет информацию о количестве товара, осталось ее только прочитать

TxxxQuery.Fiellds. F1 and SeeAlso
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 02.05.2009 в 12:52.
evg_m вне форума Ответить с цитированием
Старый 02.05.2009, 13:41   #3
Ярый
 
Регистрация: 02.05.2009
Сообщений: 3
По умолчанию

Не совсем понял про TxxxQuery что это?
У меня на форме находятся кнопки "НОВАЯ ПРОДАЖА" (Insert Record), ну и соответственно проверять значение при попытке занести запись в базу то есть при нажатии кнопки "СОВЕРШИТЬ ПРОДАЖУ" (Post Edit).
А пункты 2 и 3 не совсем понимаю, то есть 2 пункт я еще не занес запись в базу и проверяю, а пункт 3 я уже занес в базу строку и только тогда проверяю? Просто я не силен в этом, главное что бы работало... Как я понимаю можно выбрать любой из трех пунктов...

Последний раз редактировалось Ярый; 02.05.2009 в 13:43.
Ярый вне форума Ответить с цитированием
Старый 02.05.2009, 14:49   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

TxxxQuery(TxxxTable) это тот компонент доступа к БД одного из типов TADOQuery TIBQuery TSQLQuery и т.д. который ты использовал в своей программе.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 02.05.2009, 15:21   #5
Ярый
 
Регистрация: 02.05.2009
Сообщений: 3
По умолчанию

Я использовал Paradox...
Ярый вне форума Ответить с цитированием
Старый 02.05.2009, 20:11   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Paradox это БД
А чему равно (какой класс использован) вот здксь
твой DBGrid + свойстро DataSource + свойство DataSet .
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 02.05.2009, 20:26   #7
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
По умолчанию

Я бы воспользовался
Цитата:
Сообщение от evg_m Посмотреть сообщение
1. при вводе количества в форме продажи
То есть ограничил бы вообще возможность ввода числ больше количество товара при открытии формы продажи. Парадокс вообще локальная ни транзакций ни сетевого трафика. Пользоваталь 1 . А 2 и 3 пункты это скорее для многопользовательских Бд вдруг что добавилось на склад, или наоборот продалось.
vovk вне форума Ответить с цитированием
Старый 03.05.2009, 15:24   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

--- сорри --- не в той теме запостил....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2009, 10:12   #9
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

а не проще в edit-e в который вы вводите колличество продаваемого товара, сразу вывести то количество товара которое есть на складе, и запретиь ввод товара, больше чем есть на складе.
для примера:

Код:
query1.sql.add:='select Количество на складе from ТОВАРЫ where АртикулТовара='<значенние>;
query1.open;
edit1.text:=query1.fieldbyname('Количество на складе').asstring;
а потом на событие onExit, для даного едита написать:
Код:
if strtoint(edit1.text)>query1.fieldbyname('Количество на складе').asinteger
 then
  begin
   showmessage('Такого колличества товара нет на складе');
   edit1.text:=query1.fieldbyname('Количество на складе').asstring;
   edit1.setfocus;
  end;
думаю это вам поможет.
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подчет количества данных garlp Помощь студентам 0 18.04.2009 11:58
Подсчет количества в Excel срочно!!! Kunia Microsoft Office Excel 5 03.02.2009 07:31
Подсчет количества открытий файла Maxx Microsoft Office Excel 6 27.01.2009 16:53
Проверка количества запущенных экземпляров приложения yulia Общие вопросы Delphi 3 07.10.2008 02:30
Подсчет количества и частоты Ensoph Помощь студентам 6 08.05.2008 10:16