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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2019, 12:10   #1
AlexZhiv
Новичок
Джуниор
 
Регистрация: 28.07.2019
Сообщений: 1
По умолчанию Права доступа: разграничение привилегий через ADOQery

Добрый день, форумчане!

У меня есть база данных в Access, в которой я создал таблицу Sotrudniki. Всех сотрудников я поделил на 5 ролей в зависимости от прав доступа (привилегий) к тем или иным базам. Попробовал создать в Делфи 7 форму авторизации (по нажатию кнопки после введения логина и пароля) для каждого из пяти типов сотрудников. После нахождения нужного значения столбца "Роль" процедура должна соединять с нужной формой через ADOQuery1 в DataModule2.
Попытался скомпилировать. И увидел, что где-то не верно понял логику ADOQuery, т.к. после написания проги система выдала сразу два типа ошибок: 1) Incompatible types: 'String' and 'TADOQuery' и 2) Missing operator or semicolon.
Вопрос: в каком символе, операторе или типе данных я допустил ошибку?

Привожу листинг процедуры:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text<>'') and (Edit2.Text<>'') then
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('SELECT Отдел, ФИО сотрудника, Должность, Телефон, Разрешение на вход, ID сотрудника, Логин, Пароль, Роль FROM Sotrudniki WHERE Логин='+#39+Edit1.Text+#39);
DataModule2.ADOQuery1.Open;
if DataModule2.ADOQuery1.IsEmpty
  then ShowMessage('Пользователь '+Edit1.Text+' не зарегистрирован ')
  else DataModule2.ADOQuery1.FieldByName('Разрешение на вход')
    if DataModule2.ADOQuery1.FieldByName('Пароль').Value <> Edit2.Text
      then
           ShowMessage('Вы ввели неверный пароль!')
      else
if DataModule2.ADOQuery1('Роль') = 'user' then UserAutorize(Form3)
else
if DataModule2.ADOQuery1('Роль') = 'adm' then UserAutorize(Form4)
else
if DataModule2.ADOQuery1('Роль') = 'dir' then UserAutorize(Form5)
else
if DataModule2.ADOQuery1('Роль') = 'rukotd' then UserAutorize(Form6)
else
if DataModule2.ADOQuery1('Роль') = 'kadry' then UserAutorize(Form7)
end;
Спасибо за внимание.
AlexZhiv вне форума Ответить с цитированием
Старый 28.07.2019, 12:16   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
DataModule2.ADOQuery1.SQL.Add('SELECT Отдел, [ФИО сотрудника], Должность, Телефон, [Разрешение на вход], [ID сотрудника], Логин, Пароль, Роль FROM Sotrudniki WHERE Логин='+#39+Edit1.Text+#39);
...
 else if DataModule2.ADOQuery1.FieldByName('Разрешение на вход').Value=1 then
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка привилегий доступа кданным Kepushka97 Microsoft Office Access 1 10.03.2016 15:11
Права доступа. разграничение прав. Dj_DeVaIs БД в Delphi 4 16.01.2014 09:10
Разграничение доступа torrtik Помощь студентам 4 23.04.2011 00:42
Разграничение прав доступа Len@09 БД в Delphi 24 03.11.2009 15:39
Разграничение доступа vsurmach БД в Delphi 6 29.11.2008 12:01