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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2014, 19:40   #1
Посол_Вон
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 24
По умолчанию библиотека.

Безымянный2.jpg

Безымянный.jpg


Имею программу для контроля пользователей, на первом скрине показана регистрация поступающего фонда, после регистрации данные попадают в таблицу(dbgrid) .Таблица состоит из "Название", "Автор", "Год издания", "Жанр", "Кол-во книг".
На втором скрине показан процесс выдачи книги пользователю, который реализован:
http://programmersforum.ru/showthread.php?t=261245
Вот этим способом.
т.е данные берутся из таблицы "Книжный фонд".
Возник вопрос, в кол-ве книг я к примеру указываю 3(в фонде), можно ли в таблице "Выданные книги" если библиотекарь выдаст 3 "эти" книги заблокировать данную книгу, будет абсурдно если книг в фонде 3 а выдавать мы можем 300.
Задавайте вопросы если что не понятно, я у аппарата отвечу.
Посол_Вон вне форума Ответить с цитированием
Старый 31.05.2014, 21:37   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Посол_Вон Посмотреть сообщение
Вложение 68466

Вложение 68467


Возник вопрос, в кол-ве книг я к примеру указываю 3(в фонде), можно ли в таблице "Выданные книги" если библиотекарь выдаст 3 "эти" книги заблокировать данную книгу, будет абсурдно если книг в фонде 3 а выдавать мы можем 300.
Задавайте вопросы если что не понятно, я у аппарата отвечу.
А как заблокировать данную книга ? Что значить заблокировать? Я думаю что на пример закрасить то строку BDGrid где количество выданные книги больше или равно 3
xxbesoxx вне форума Ответить с цитированием
Старый 01.06.2014, 17:31   #3
Посол_Вон
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
А как заблокировать данную книга ? Что значить заблокировать? Я думаю что на пример закрасить то строку BDGrid где количество выданные книги больше или равно 3
"Заблокировать"-убрать из списка доступных для выдачи.
А вот это:
"Я думаю что на пример закрасить то строку BDGrid где количество выданные книги больше или равно 3" вообще не понял, как закрасить и что?
Посол_Вон вне форума Ответить с цитированием
Старый 01.06.2014, 18:21   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Посол_Вон Посмотреть сообщение
"Заблокировать"-убрать из списка доступных для выдачи.
А вот это:
"Я думаю что на пример закрасить то строку BDGrid где количество выданные книги больше или равно 3" вообще не понял, как закрасить и что?
1. Флёнов М.Е. - Библия Delphi (3-е издание) - 2011 Можно скачать из интернет . Если не купить ! На 415 странице подробно написано 14.12 Цветной сетки DBGrid почитайте и поймете

2. вы думайте что говорите ? что значить убрать из списка боле конкретно пожалуйста ! Вы имеете в виду удалить или что ?
xxbesoxx вне форума Ответить с цитированием
Старый 01.06.2014, 20:12   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Удалить это глупость ! "Заблокировать"-убрать = Как то странно слышно . Но если вы не хотите отображать то строки где выданные книги = 3 это можно язык SQL реализовать очень просто

Код:
select *
from [Имя таблици]
where [выданные книги] <>  3
ADOQyery предназначен для SQL запроса
xxbesoxx вне форума Ответить с цитированием
Старый 02.06.2014, 07:07   #6
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Возможно, завести в таблице "Фонды" колонку с текущим кол-вом книг в фонде. Изначально "Всего" = "Текущее кол-во". При каждой выдаче текущее кол-во уменьшается, при возврате - увеличивается. Если текущее кол-во ноль - книга не выдаётся, поскольку ее уже нет в наличии, надо ждать, пока кто-нить вернёт...
superedward вне форума Ответить с цитированием
Старый 02.06.2014, 07:44   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

superedward немного опередил меня. Я бы поступил немного по-другому. С позицией "Общее количество книг в фонде", я связал-бы поля пользователей, кому эти книги выданы. Прога, подсчитывает количество выданных и сравнивает с общим. Такое решение кажется громоздким, но даёт массу преимуществ.
1. Мы можем узнать, сколько книг осталось.
2. Кому и на какой срок выданы книги.
3. Ближайшая дата возврата книги.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 02.06.2014, 09:39   #8
Посол_Вон
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 24
По умолчанию

[QUOTE=superedward;1383375]Возможно, завести в таблице "Фонды" колонку с текущим кол-вом книг в фонде. Изначально "Всего" = "Текущее кол-во". При каждой выдаче текущее кол-во уменьшается, при возврате - увеличивается. Если текущее кол-во ноль - книга не выдаётся, поскольку ее уже нет в наличии, надо ждать, пока кто-нить вернёт.

такая колонка уже есть."При каждой выдаче текущее кол-во уменьшается, при возврате - увеличивается. Если текущее кол-во ноль - книга не выдаётся, поскольку ее уже нет в наличии, надо ждать, пока кто-нить вернёт" я так и хочу, вопрос как это реализовать?
Посол_Вон вне форума Ответить с цитированием
Старый 02.06.2014, 09:51   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Колонка в таблице с остатком книг не нужна. Остаток считается оперативно запросом, коль есть информация о выдаче и возврате книг. Беды потом не оберешься в реальной задаче при наличии таких не нормализованных полей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.06.2014, 10:14   #10
Посол_Вон
Пользователь
 
Регистрация: 19.05.2014
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Колонка в таблице с остатком книг не нужна. Остаток считается оперативно запросом, коль есть информация о выдаче и возврате книг. Беды потом не оберешься в реальной задаче при наличии таких не нормализованных полей
С остатком нету, в таблице "Книжный фонд" есть колонка с общим кол-ом книг которые мы указываем при "Регистрации книги".
Посол_Вон вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД Библиотека vaako Microsoft Office Access 0 02.05.2012 21:37
Библиотека C++ Дэнис Помощь студентам 8 26.02.2012 20:57
Библиотека Си++ Мелия Помощь студентам 2 21.06.2011 15:52
БД библиотека Arkuz БД в Delphi 125 13.10.2010 16:05
Библиотека на Си odi_noki Общие вопросы C/C++ 6 16.04.2009 23:27