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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2010, 13:38   #1
Masip
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 32
По умолчанию Базы данных в Delphi

Здравствуйте! Есть БД сделанная в Access, которая содержит одну таблицу(userName) и 3 поля(id, name, pass). Подскажите как создать программу аутентификации по БД?
Masip вне форума Ответить с цитированием
Старый 06.05.2010, 13:49   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Можно примерно так:
Код:
procedure TFrmControl.btnOkClick(Sender: TObject);
begin
  cdsUsers.Filtered:=false;
  cdsUsers.Filter:='([Логин]='+''''+edLog.Text+''''+') and ([Пароль]='+''''+
                                                          edPsw.Text+''''+')';
  cdsUsers.Filtered:=true;
  if not cdsUsers.IsEmpty
    then
      begin //санкционированный вход пользователя
        UserStat:=cdsUsers.FieldByName('Статус').AsString[1];
        UserLog:=edLog.Text;
        cdsEvents.Append;//запись в журнал событий
        cdsEvents.FieldByName('Дата').AsString:=DateToStr(Date);
        cdsEvents.FieldByName('Время').AsString:=TimeToStr(Time);
        cdsEvents.FieldByName('Логин').AsString:=UserLog;
        cdsEvents.FieldByName('Статус').AsString:=UserStat;
        cdsEvents.FieldByName('Событие').AsString:=
                                        'Санкционированный вход пользователя';
        cdsEvents.Post
      end
    else
      begin //попытка несанкционированного входа
        MessageDlg('Неверный логин или пароль...',mtError,[mbOk],0);
        edLog.Text:='';
        edPsw.Text:='';
        Dec(Fora);
        if Fora=0
          then
            begin
              cdsEvents.Append; //запись в журнал событий
              cdsEvents.FieldByName('Дата').AsString:=DateToStr(Date);
              cdsEvents.FieldByName('Время').AsString:=TimeToStr(Time);
              cdsEvents.FieldByName('Логин').AsString:=edLog.Text;
              cdsEvents.FieldByName('Событие').AsString:=
                                      'Попытка несанкционированного входа...';
              cdsEvents.Post;
              Application.Terminate
            end
          else
            begin
              edLog.SetFocus;
              Exit
            end
      end;
  cdsUsers.Filtered:=false;
  FrmMain.Visible:=true;
  FrmControl.Visible:=false
end;
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 06.05.2010, 14:10   #3
Masip
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 32
По умолчанию

а что такое csEvents???
Masip вне форума Ответить с цитированием
Старый 06.05.2010, 14:14   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

cdsEvents - это моя таблица журнала событий. В ней я фиксирую все события, связанные с изменениями в базе данных... Для Вас это не важно, можете на нее не обращать внимания. Просто я выдернул процедуру из своей рабочей программы... Там же есть комментарий - //запись в журнал событий.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 06.05.2010, 14:18   #5
Masip
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 32
По умолчанию

Понятно что не чего не понятно!задумку вашу понял!
а можно поподробней с использованием ADOQuery?у меня не получается выполнить запрос который проверял бы наличе юзера в БД!и не знаю как сделатЬ!
Masip вне форума Ответить с цитированием
Старый 06.05.2010, 14:36   #6
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

поиском обычным по полю

могу реализовать за вознаграждение
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 06.05.2010, 16:45   #7
Masip
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 32
По умолчанию

а кто нить может кодом даром поделиться?
Masip вне форума Ответить с цитированием
Старый 06.05.2010, 17:38   #8
Masip
Пользователь
 
Регистрация: 02.06.2009
Сообщений: 32
По умолчанию

Всем спасибо!все работает!вот что получилось:
with DataModule1 do
begin
Query.Active:=false;
Query.SQL.Clear;
sql:= 'SELECT * FROM userName WHERE (name=:login and pass= : password)';
Query.SQL.Text:=sql;
Query.Parameters.ParamByName('login ').Value:= login;
Query.Parameters.ParamByName('passw ord').Value:=password;
Query.Active:=True;
Query.Open;
if (Query.FieldByName('name').Value = login) and
(Query.FieldByName('pass').Value = password) then
ShowMessage('Вы вошли!')
else
ShowMessage( 'Неправильно введено имя пользователя или пароль.' );
end;

Последний раз редактировалось Masip; 06.05.2010 в 17:42.
Masip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Локальные базы данных для Delphi Марк Охман БД в Delphi 21 20.09.2010 09:57
Delphi 7 Базы данных Paradox 7 бугор Помощь студентам 3 07.04.2010 17:04
Базы данных в Delphi 4 мушкетера БД в Delphi 3 24.01.2010 13:54
Базы данных и Delphi DimOn4Ik Общие вопросы Delphi 1 06.01.2010 14:57
Отображение информации из базы данных (Delphi) flame33 Помощь студентам 6 13.12.2009 21:24