Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
RAD 2009-XE2

БД "Склад"

20.07.2019, 12:10. Показов 2882. Ответов 33

Студворк — интернет-сервис помощи студентам
Здравствуйте. Прошу помочь материалами и советом по следующему вопросу.
Поставили задачу написать простую БД "СКЛАД" (не более 7 таблиц). С возможностью работы в ней по сети и разграничением прав пользователей.
Писать буду на delphi 10 + postgreSQL. Опыта практически нет, отсюда следующий вопрос:
для связи делфи с субд использовать firedac, zeoslib, ado?
Как грамотно сделать авторизацию и идентификацию пользователя и обрезать права обычному оператору?
Заранее благодарю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2019, 12:10
Ответы с готовыми решениями:

БД склад
четыре таблицы. "Роль" "справочник фирм" "приход" и "расход" роль имеет связь с табл "спр фирм" необходимо установить связь...

бд склад
Имеется бд(access) с таблицами , всё это помещаю на форму (с помощью AdoQuery). Имеются таблица "Приход" ,"Расход",...

компьютерный склад
Делаю программу компьютерный склад. Бд ADO c ADOConnection Возникла следующая проблема, в таблице товар поделен на разделы (процессор,...

33
 Аватар для Пытливый
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
24.07.2019, 12:51
Студворк — интернет-сервис помощи студентам
не нужно использовать пользователей от БД
обоснуйте. Есть механизм сделанный именно для контроля доступа пользователя, а вы предлагаете его выбросить и сделать свой. Нелогично.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
24.07.2019, 13:57
это контроль доступа к объектам БД
он не имеет никакого отношения к объектам и ролям в вашей программе

для управления правами в БД требуется доступ админа БД
для выдачи прав Бухгалтеру редактировать доступ к Карточке товара это будет перебор
доступ к объектам программы проверяется на уровне программы, а не БД
если требуется повышенная секьюрность, то заводим два логина, с которым программа ходит в базу - один для первого доступа на чтение только таблицы USERS, если аутентификация прошла норм, выдаем ей второй на нормальный доступ к объектам БД

Добавлено через 1 минуту
есть еще вопросы бакапов БД
которые не связаны с пользователями

и информацию о пользователях где хранить, если сервер имеет только логин/пароль/descroption
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
24.07.2019, 14:29  [ТС]
Что то голова перестала работать, нужна мысль!!!! Вопрос:
есть таблицы:

Справочник групп:
id serial
name varchar

Комплектующие
id serial
idGrp integer
name varchar
Связаны по полям idGrp - id,
Как добавить данные избежав конфликта типов???
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
24.07.2019, 14:32
нет никакого конфликта
пишите id группы в idgrp
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
24.07.2019, 18:07  [ТС]
Точно! Если не трудно подскажите как реализовать:
1) при открытии формы чтобы в dbCombobox подгружались значения из name таблицы справочники.

Добавлено через 35 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
begin
 datamodule1.fqAddGrid.Open('select firstname from groupk');
  DBCombobox1.Clear;
  if datamodule1.fqAddGrid.Active then datamodule1.fqAddGrid.First else datamodule1.fqAddGrid.Open;
   if datamodule1.fqAddGrid.Eof then
    DBCombobox1.Items.Add('набор данных пуст')
  else
    while not datamodule1.fqAddGrid.Eof do  begin
      DBCombobox1.Items.Add(datamodule1.fqAddGrid.Fields[0].AsString);
      datamodule1.fqAddGrid.Next;
    end;
end;
занести то заносятся, но не выбираются
(((((

Добавлено через 2 часа 31 минуту
Все таки не могу разобраться как добавить запись в связанную таблицу. У меня в dbCombobox указано значение 2 столбца, а как добавить значение его ID в связанный idgrp????
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
25.07.2019, 08:24
стандартная задача в мире реляционных БД
в таблицах хранится либо данные, либо код из другой таблицы, где можно взять данные
соответственно, для просмотра и редактирования мы используем либо DBComboBox, который оперирует собсно значениями, либо DBLookupComboBox, который оперирует кодами, но пользователю показывает значения из другой таблицы

Вот и пользуйтесь сообразным задаче инструментом.
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
25.07.2019, 09:16  [ТС]
не понимаю, что вы имеете ввиду. у меня таблица в ней 2 поля id и наименование. Я заношу эти наименования в dbcombobox и хочу чтобы id этого наименование заносилось в другую таблицу при добавлении этого значения
Например есть резная крышка, я указываю ей группу крышки (которой соответствует например id=2) и хочу чтобы при добавлении этой крышки в таблицу склад, значение 2 заносилось в столбик idgr
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
25.07.2019, 09:32
вы про DBLookupComboBox специально читать не стали ?
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
25.07.2019, 10:19  [ТС]
Если не трудно, можно пример кода? что то не то уже делаю по ходу....
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
25.07.2019, 11:02
вы прочли что есть DBLookpuCombobox или нет?
я должен для вас составлять рабочий пример с пояснениями, а вам лень в доки посмотреть?
Как настроить DBLookupComboBox?
https://www.youtube.com/watch?v=xh9am3Kbob0
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
25.07.2019, 11:28  [ТС]
Да ну нет конечно! Спасибо, что помогаете! Буду вникать!!!!
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 68
30.07.2019, 12:28  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TfrmPrihod.Button1Click(Sender: TObject);
var
    D : TDateTime;
begin
     D := Int(DateTimePicker1.Date);
     dm.fqDoc.Close;
     dm.fqDoc.SQL.Clear;
     dm.fqDoc.SQL.Text := 'INSERT INTO tdoc (datadoc) VALUES (:datadoc)';
     dm.fqDoc.FieldByName('datadoc').Value := D;
     dm.fqDoc.ExecSQL;
end;
Что я неправильно делаю, говорит datadoc не найден
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,676
Записей в блоге: 21
30.07.2019, 14:41
parambyname
0
5997 / 4572 / 1096
Регистрация: 29.08.2013
Сообщений: 28,237
Записей в блоге: 3
30.07.2019, 17:36
Цитата Сообщение от fya Посмотреть сообщение
dm.fqDoc.SQL.Clear;
можно не делать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2019, 17:36
Помогаю со студенческими работами здесь

программа склад
Здраствуйте всем у меня такой вопрос: Подключил бд(Access), она читается в dbgrid, в dbedit считывается нужное поле (кол-во), и написал...

Склад в Delphi
Как написать программу учета выданных вещей со склада? На Delphi.

Добавление товара на склад
Есть таблица поступление и склад. При добавлении добавлении записи в таблицу поступление просиходит добавление этого товара(только код...

Имеется три таблицы: приход, расход, и склад. Как написать код в Делфи?
Имеется три таблице приход расход и склад как написать код в делфи, что при приходе это число прибавлялась на склад

Программа склад
Надо создать такую программу чтобы программа принимала товары в склад и отправляла со склада. Если название товара которого мы принимаем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
Модель здравоохранения 12. добавление болезней через ресурпул, как аварии
anaschu 22.05.2026
Болезни — это ключевая часть нашей модели. Нам нужно, чтобы работник периодически уходил на больничный, его задание при этом зависало, а после выздоровления работа возобновлялась. Реализуем это двумя. . .
Модель здравоохранения 11. Создаём классы Задание и Работник
anaschu 22.05.2026
В AnyLogic каждая заявка и каждый ресурс — это объект определённого класса. Нам нужно создать два класса: Задание (заявка) и Работник (ресурс). Класс Задание В дереве проекта нажимаем правой. . .
Модель здравоохранения 10. Новая модель, смотрим, как добавлять логические блоки, и что писать внутри
anaschu 22.05.2026
Открываем AnyLogic, создаём новый проект. В дереве проекта появляется класс Main — это главный агент, в котором будет жить вся наша логика. Палитра блоков Слева находится палитра. Нас интересует. . .
модель ЗдравоСохранения 9. Новая модель, разбираемся, как ее создавать
anaschu 22.05.2026
В этой серии постов мы построим модель небольшого рабочего коллектива. Сотрудники получают задания, выполняют их, иногда болеют — и мы хотим посчитать, сколько это стоит компании. Метод. . .
[golang] Linked list
alhaos 22.05.2026
Связный список / Linked list Связный список структура данных позволяющая хранить список значений, в отличии от массива в памяти хранится не сплошным куском, а отдельными частями которые ссылаются. . .
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru