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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2015, 09:51   #1
adminsamara
Пользователь
 
Регистрация: 05.02.2014
Сообщений: 13
По умолчанию Пароль на приложение используя DB

Есть готовое приложение работающее с DB Oracle, но еще хочу добавить форму с вводом имени пользователя и пароля перед запуском приложения (создал таблицу USERS (u_id, u_user, u_password, u_atribut)),если имя пользователя и пароль есть то входит в приложение, если нет то пишет что пароль введен не правильно... подскажите как это сделать или прочитать?! Подключаюсь через ADOconnect
Google не помог.... поиском пользовался...
Заранее благодарен
adminsamara вне форума Ответить с цитированием
Старый 03.12.2015, 10:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в самом Оракле Юзеров и их ролей настроить не хочешь? Обязательно отдельную таблицу создавать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2015, 10:17   #3
adminsamara
Пользователь
 
Регистрация: 05.02.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А в самом Оракле Юзеров и их ролей настроить не хочешь? Обязательно отдельную таблицу создавать?
Нет столько пользователей я создавать не буду. именно из таблицы нужно...

Парни, нет мыслей?

Последний раз редактировалось Stilet; 03.12.2015 в 11:25.
adminsamara вне форума Ответить с цитированием
Старый 03.12.2015, 11:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дак какие мысли? Ты форму в Делфи создать можешь? Накидать на нее компонеты можешь? Таблицу в Оракле создать и наполнить данными можешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.12.2015, 19:39   #5
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

Я вот так сделал:

Код:
procedure Tsecond.Button1Click(Sender: TObject);
begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT Pass FROM Users WHERE User='+#39+ComboBox1.Text+#39);
  ADOQuery1.Open;
      if ADOQuery1.FieldByName('Pass').Value <> Edit1.Text
        then
          begin
          ShowMessage('Введен не верный пароль!')
          end
        else
        begin
          op:=ComboBox1.Text;
          Form1.Show;
          second.Hide;
          ShowMessage('Вы вошли как '+op);
          Form1.Label8.Caption:=op;
          second.Close;
        end;
if op <> 'Администратор' then
begin
  Form1.Button45.Visible:=false;
  Form1.Button38.Visible:=false;
  Form1.N3.Visible:=False;
end;
end;
Но эт на SQL

Последний раз редактировалось MixanMM; 05.12.2015 в 19:40. Причина: эээммм....
MixanMM вне форума Ответить с цитированием
Старый 06.12.2015, 13:45   #6
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Убрать все формы из автосоздоваемых кроме формы авторизации и datamodule

Это из кода проекта:

Код:
function CheckPassword: Boolean;
....
begin
    Result := False;
    try
        Application.CreateForm(TDM, DM);
  LoginForm := TLoginForm.Create(nil);

        if LoginForm.ShowModal = mrOk then
            Result := True;
    finally
        LoginForm.Free;
    end;
end;

begin
  Application.Initialize;
  if CheckPassword then
    begin
      Application.MainFormOnTaskbar := True;
      Application.CreateForm(TfrmMain, frmMain);
    end
    else
     Application.Terminate;

  Application.Run;
end.
Это из формы авторизации:
Код:
procedure TLoginForm.btnCancelClick(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TLoginForm.btnOkClick(Sender: TObject);
var
  oldtop, oldleft, x:integer;
begin
if isSingIn(edtLogin.Text, edtPasswd.Text) = 1
then
  ModalResult := mrOk  //если авторизовались в программе
else
  begin
    oldtop:=top;
    oldleft:=left;
    for x:= 1 to 50 do
    begin
      top:= top+(random(6)-3);
      left:=left+(random(6)-3);
      application.ProcessMessages;
      sleep(2);
      top:=oldtop;
      left:=oldleft;
    end;
    lblMessage.Font.Color := clRed;
    lblMessage.Caption := 'Не верно указанно имя пользователя или пароль';

    edtLogin.SetFocus;
  end;
end;

function TLoginForm.GetMD5String(Str: String): string;
var
  MD5 : TIdHashMessageDigest5;
begin
  MD5 := TIdHashMessageDigest5.Create ;
  Result := MD5.HashStringAsHex(Str);
end;

function TLoginForm.isSingIn(username, password: string): integer;
var
 Query : TFDQuery;
begin
  fdQuery := TFDQuery.Create(nil);
  fdQuery.Connection := DM.FDConn;
  fdQuery.ResourceOptions.SilentMode := True;

  fdQuery.SQL.Text := 'SELECT login, name, ';
  fdQuery.SQL.Append('passwd, FROM table');
  fdQuery.SQL.Append('WHERE login = :p_LOGIN AND passwd = :p_PASSWD AND is_login=1;');
  fdQuery.ParamByName('p_LOGIN').Value := username;
  fdQuery.ParamByName('p_PASSWD').Value := GetMD5String(password);
  fdQuery.Open;
  if fdQuery.RecordCount > 0 then
    begin
      result := 1;
    end
  else
    result := 0;
  FreeAndNil(fdQuery);
end;
le7o вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать i-frame приложение в социальной сети ВКонтакте, используя html5 тег <canvas>. GReise HTML и CSS 3 06.01.2013 16:09
как привильно запускать консольное приложение используя CreateProcess? Человек_Борща Общие вопросы Delphi 2 25.02.2011 16:53
Пароль на приложение в Delphi kosya Общие вопросы Delphi 3 01.06.2010 21:07
Пароль на приложение Chals Общие вопросы Delphi 6 24.11.2007 21:32