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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2013, 21:12   #1
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию Разграничение прав доступа. БД делфи + access

У меня есть 3 поля в документе access.
pass
login
prava
В поле "prava" которая в зависимости от уровня доступа( 0 и 1) позволяет пользователю изменять пароль или запретить его смену.
1 можно
0 нельзя
После ввода логина и пароля нас скидывает на форму. На форме есть две кнопки "сменить пароль" и "выход".
Мне нужно чтобы при нажатии на кнопку "сменить пароль" в зависимости от уровня доступа выводило сообщение "сменить пароль нельзя" если уровень доступа в поле права = 0, если 1 то "добро пожаловать".

Вот код:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var prav:integer;
begin
Prav:=DM.ADOTable1.fieldbyname('prava').Asinteger;
if (prav=1) then begin form3.show; ShowMessage ('Добро пожаловать!!!');end
else begin (prav=0)  ShowMessage('Сменить пароль нельзя!!!');form3.close;end;
end;
Изображения
Тип файла: jpg Снимок.JPG (18.1 Кб, 66 просмотров)

Последний раз редактировалось Stilet; 01.10.2013 в 21:37.
Abay19941308 вне форума Ответить с цитированием
Старый 01.10.2013, 21:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а чем твой код не устраивает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 21:45   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Наверно компилятор плюется на else begin (prav=0)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2013, 21:51   #4
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

Сменить пароль запрещает всем даже тем пользователям у которых уровень доступа равен 1.
Abay19941308 вне форума Ответить с цитированием
Старый 01.10.2013, 21:51   #5
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

да исправил else begin (prav=0)
убрал (prav=0)
Abay19941308 вне форума Ответить с цитированием
Старый 01.10.2013, 21:54   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сменить пароль запрещает всем
Может быть потому что ты на запись пользователя не стал?
Как ты выбираешь пользователя? Проведи отладку - посмотри чему переменка prav равна после получения из базы, или так проверь:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var prav:integer;
begin
ShowMessage (DM.ADOTable1.fieldbyname('login').AsString);
Prav:=DM.ADOTable1.fieldbyname('prava').Asinteger;
...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 21:58   #7
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

Проверил она почему то равняется 2 столбцу 4 строке (meir)
Abay19941308 вне форума Ответить с цитированием
Старый 01.10.2013, 22:01   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отож. Ты не переходишь на нужную запись с юзером, оттого и неверное значение - берется с конца, наверное потому что ты в цикле проход по таблице сделал для вывода списка юзеров.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 22:02   #9
Abay19941308
Пользователь
 
Регистрация: 29.10.2012
Сообщений: 64
По умолчанию

Тоесть я должен записать логин пользователя в каую-то переменную. Потом сверить права доступа этого пользователя.
Abay19941308 вне форума Ответить с цитированием
Старый 01.10.2013, 22:03   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

То есть ты должен методом Locate (к примеру им) перескочить на запись выбранного пользователя. Тогда твой код сработает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разграничение прав доступа xDyPx PHP 1 04.05.2013 23:13
Разграничение прав доступа в рамках одного листа. Maverik2k Microsoft Office Excel 3 23.04.2013 12:00
Разграничение прав на области листа Chelentano Microsoft Office Excel 11 07.02.2013 10:33
БД Access и разграничение прав доступа chandrasecar БД в Delphi 0 22.05.2011 23:22
Разграничение прав доступа Len@09 БД в Delphi 24 03.11.2009 15:39