Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
Delphi 6-7

Программа по проверке остаточных знаний

28.04.2018, 14:30. Показов 1457. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я не профи в Delphi поэтому обращаюсь к вам за помощью.
В базе данных Acces есть 3 типа пользователей и у каждого свои права (Админ,Преподаватель,Студент), так же у каждого имеется свой зарезервированный ID (Админ (10-99), Преподаватели (100-999) , Студенты (1000-99999)).
У меня есть главная форма авторизации в программе. Кнопка входа в программе работает правильно, но не могу сделать разграничение доступа для каждого вошедшего. Есть мысль добавить Edit на главную форму авторизации и скрыть его что бы в него записывался ID зашедшего пользователя и благодаря этому ID наделялся правами. ID пользователей я решил записать через массив, т.к множество всего до 255.
Так вот, подскажите как связать Edit-ы что бы при входе пользователя показывался его ID и по этому ID пользователь получал свои права. Хотя бы пример с одним типом пользователя ,а там уж думаю разберусь. Если есть другие предложения,то я могу их рассмотреть, но опять же не силён в Delphi.
Миниатюры
Программа по проверке остаточных знаний  
Изображения
 
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2018, 14:30
Ответы с готовыми решениями:

проверка остаточных знаний MVC Linux
проверка остаточных знаний MVC Linux

Нужна помощь в проверке знаний
Здравствуйте! Я сейчас ищу специалиста по разработке и продвижению сайтов. Пожалуйста, подскажите, как проверить знания/умения...

Составить контролирующую программу по проверке знаний учащихся
4. Составить контролирующую программу по проверке знаний учащихся по K вопросам по 5-балльной шкале на языке Basic.

15
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.04.2018, 14:37
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
но опять же не силён в Delphi.
А выложить код в виде текста, а не картинки силен?
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
28.04.2018, 15:36
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
так же у каждого имеется свой зарезервированный ID (Админ (10-99), Преподаватели (100-999) , Студенты (1000-99999)).
зачем?
просто считай пользователей счетчиком + дополнительное поле 1-админ, 2-препод, 3-студент

и нужно не лениться смотреть в поиск
Авторизация в Delphi 7 через Access БД
Авторизация в программе через access
Авторизация
Авторизация через бд
0
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
28.04.2018, 15:43  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Edit3: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Adm:array [10..99] of longint;
  Teac: array [100..999] of longint;
  Stud: array [1000..99999] of longint;
implementation
 
uses Unit2, Unit3;
 
{$R *.dfm}
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('Select  Пароль FROM   Матрица_доступа WHERE Логин='+#39+Edit1.Text+#39);
DataModule2.ADOQuery1.Open;
if DataModule2.ADOQuery1.IsEmpty
 then
    ShowMessage('Пользователь ' + Edit1.Text +' не найден!')
    else
      if DataModule2.ADOQuery1.FieldByName ('Пароль').Value <> Edit2.Text
        then
        ShowMessage ('Пароль не верный!')
          else
             Form3.Show
          
end;
 
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Button1.Click;
end;
 
 
 
 
end.
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
28.04.2018, 15:56
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
Adm:array [10..99] of longint;
Teac: array [100..999] of longint;
Stud: array [1000..99999] of longint;
это ужас)

Цитата Сообщение от LSTSnaiper Посмотреть сообщение
DataModule2.ADOQuery1.SQL.Add('Select Пароль FROM Матрица_доступа WHERE Логин='+#39+Edit1.Text+#39);
тут напиши
SQL
1
SELECT Пароль, Уровень
и все.
0
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
28.04.2018, 16:20  [ТС]
А как код написать по распределению полномочий ?
0
28.04.2018, 16:24

Не по теме:

руками?

0
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
28.04.2018, 16:34  [ТС]
Если бы я понимал ,я бы не обращался сюда... написать о том что я и так уже думал/делал и сказать что всё остальное делать руками эт сильно помогло ....
0
28.04.2018, 17:55

Не по теме:

так же как и вопрос "а как написать код?"
не понимаешь - учись
в сети есть примеры\учебники\видео, а вы все хотите готовый код "вставил и заработало"

0
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
28.04.2018, 18:35  [ТС]
Я уже много форумов переискал и видео пересмотрел, но там нет того,что нужно мне. Думал хоть тут помогут...Я не прошу полностью рабочий код ,хотя бы часть что бы понять как это работает. Не все такие гуру как ты .

Добавлено через 4 минуты
Если есть какой-то обучающий материал ,примеры как это делается я с удовольствием почитаю. Всегда есть альтернатива написанию кода кому-то .
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
28.04.2018, 19:12
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
Я уже много форумов переискал и видео пересмотрел, но там нет того,что нужно мне
почти все ветка "Delphi и базы данных" посвящена запросам в разных вариациях
если ты не поленишься пролистать страниц 10 и заглянуть в каждую тему ты будешь знать больше

а если заглянешь в книжку
http://www.delphiplus.org/prog... index.html
то вообще гуру станешь
0
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
03.05.2018, 18:01  [ТС]
Вот что получилось ,пусть может и не совсем всё синтаксически идеально ,но работает!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('Select  Select  Пароль,ID FROM   Матрица_доступа WHERE Логин='+#39+Edit1.Text+#39);
DataModule2.ADOQuery1.Open;
if DataModule2.ADOQuery1.IsEmpty
 then
    ShowMessage('Пользователь ' + Edit1.Text +' не найден!')
    else
 
      if DataModule2.ADOQuery1.FieldByName ('Пароль').Value <> Edit2.Text
        then
        ShowMessage ('Пароль не верный!')
          else
          begin
            if DataModule2.ADOQuery1.FieldByName('ID').Value= '1'then
             Form3.Show
 
              else
               begin
                 if DataModule2.ADOQuery1.FieldByName('ID').Value= '2'then
                   Form7.Show
 
                  else
                   begin
                    if DataModule2.ADOQuery1.FieldByName('ID').Value= '3'then
                     Form8.Show;
                    end;
                    end;
                    end;
 
end;
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
03.05.2018, 18:07
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
не совсем всё синтаксически идеально
Да уж, эта куча if-ов смотрится просто бр-р-р... case куда как элегантнее...
Delphi
1
2
3
4
5
case DataModule2.ADOQuery1.FieldByName('ID').AsInteger of
 1: Form3.Show;
 2: Form7.Show;
 3: Form8.Show;
end;
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
03.05.2018, 18:11
Лучший ответ Сообщение было отмечено LSTSnaiper как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Button1Click(Sender: TObject);
begin
  DataModule2.ADOQuery1.SQL.Clear;
  DataModule2.ADOQuery1.SQL.Add('Select  Select  Пароль,ID FROM   Матрица_доступа WHERE Логин='+#39+Edit1.Text+#39);
  DataModule2.ADOQuery1.Open;
  if DataModule2.ADOQuery1.IsEmpty then
  begin
    ShowMessage('Пользователь ' + Edit1.Text +' не найден!');
    exit
  end;
 
  if DataModule2.ADOQuery1.FieldByName ('Пароль').Value <> Edit2.Text then
  begin
    ShowMessage ('Пароль не верный!');
    exit
  end;
 
  case DataModule2.ADOQuery1.FieldByName('ID').asInteger of
    1: Form3.Show;
    2: Form7.Show;
    3: Form8.Show;
   end;
end;
1
2 / 2 / 1
Регистрация: 18.03.2018
Сообщений: 145
03.05.2018, 21:18  [ТС]
Каждый делает в меру своей возможности, для меня ,то что я сделал ,уже продвижение .

Добавлено через 11 минут
Конечно вопрос не по теме , но не могли бы подсказать как сделать так что бы заставка исчезала после показы ,а то она остаётся у меня как фон
это код в самой форме-заставке
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
unit Unit6;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;
 
type
  TFrmzst = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Frmzst: TFrmzst;
 
implementation
 
{$R *.dfm}
 
procedure TFrmzst.FormCreate(Sender: TObject);
var t:LongInt;
begin
t:=GetTickCount div 1000;
while (GetTickCount div 1000)<t+5 do
end;
 
end.
 
 
а это файл проекта 
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
  Unit3 in 'Unit3.pas' {Form3},
  Unit4 in 'Unit4.pas' {Form4},
  Unit5 in 'Unit5.pas' {Form5},
  Unit6 in 'Unit6.pas' {Frmzst},
  Unit7 in 'Unit7.pas' {Form7},
  Unit8 in 'Unit8.pas' {Form8};
 
{$R *.res}
 
begin
  Application.Initialize;
  Frmzst:=TFrmzst.Create(Application);
  Frmzst.Show;
  Frmzst.Update;
  Application.CreateForm(TFrmzst, Frmzst);
  Frmzst.Hide;
  Frmzst.Free;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm7, Form7);
  Application.CreateForm(TForm8, Form8);
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm5, Form5);
  Application.Run;
end.
Предвидя море критики ,хочу сказать, что материал был только как сделать через этот способ заставку (да ,знаю что через таймер можно сделать).
0
Эксперт Pascal/Delphi
 Аватар для droider
4888 / 2822 / 865
Регистрация: 04.10.2012
Сообщений: 10,264
04.05.2018, 09:29
Цитата Сообщение от LSTSnaiper Посмотреть сообщение
как сделать так что бы заставка исчезала после показы
См. Появляется картинка при запуске программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2018, 09:29
Помогаю со студенческими работами здесь

Составить контролирующую программу по проверке знаний учащихся
Помогите пожалуйста, выручайте! Составить контролирующую программу по проверке знаний учащихся по &quot;K&quot; вопросам(литература) по...

Программа по проверке перевода слов
Здравствуйте. Недавно стал учить неправильные глаголы в немецком языке и решил написать программу для проверки знаний. Программа должна при...

Программа по проверке введенного пароля
Здравствуйте! Решил научиться вскрывать .exe-шники.(как смешно:) ) Вообщем,в статье Криса Касперского расписана вот такая...

При проверке ЖД Vicorya, программа зависает
Добрый день При проверке ЖД программой виктория, программа зависает при проверке 21639 Мб, также пишет нестабильный сектор.

Программа завершается при проверке условий
при выполнении условий if (m&lt;2) or (m&gt;5) or (f&lt;2) or (f&gt;5) выкидывает из программы, исправьте пожалуйста uses crt; var ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru