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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2014, 02:48   #1
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию Ошибка при авторизации пользователей в Делфи

при авторизации пользователей выдает ошибку.
Код:
procedure TForm21.Button1Click(Sender: TObject);
DataModule1. AdoQuery1.SQL.Clear;
  DataModule1. AdoQuery1.SQL.Add('SELECT * FROM Авторизация WHERE Логин = ' + QuotedStr(DBLookupComboBox1.Text));
  DataModule1. AdoQuery1.Active := true;
  DataModule1. AdoQuery1.ExecSQL;
  DataModule1. AdoQuery1.First;

  if(DataModule1. AdoQuery1.FieldByName('Пароль').AsString = DBEdit1.Text) then
  begin
    if(DBLookupComboBox1.Text = 'Администратор') then isSotrudnik := true
    else isSotrudnik := false;

    if(DBLookupComboBox1.Text = 'Сотрудник') then
    begin
      isSotrudnik := true;
      isAdmin := true;
    end
    else isСотрудник := false;

    UserName := DBLookupComboBox1.Text;
    Form2.Show;
    Form21.Hide;
    DataModule1.ADOConnection1.Connected := false;
  end
  else MessageBox(Handle, 'Неверный логин или пароль!', 'Ошибка', MB_ICONERROR);

  DataModule1. AdoQuery1.Active := false;
end;

end;
end.

Последний раз редактировалось курбанниязов; 31.05.2014 в 02:53.
курбанниязов вне форума Ответить с цитированием
Старый 31.05.2014, 03:54   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
при авторизации пользователей выдает ошибку.
Что именно за ошибка? Ошибку в студию!

Последний раз редактировалось Streletz; 31.05.2014 в 04:15.
Streletz вне форума Ответить с цитированием
Старый 31.05.2014, 11:36   #3
курбанниязов
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Что именно за ошибка? Ошибку в студию!


[Error] Unit21.pas(73): Left side cannot be assigned to
[Error] Unit21.pas(74): Incompatible types: 'String' and 'Boolean'
[Error] Unit21.pas(74): Illegal character in input file: 'н' ($ED)
[Error] Unit21.pas(74): Statement expected, but expression of type 'Boolean' found
[Error] Unit21.pas(78): Statement expected but 'IS' found
курбанниязов вне форума Ответить с цитированием
Старый 31.05.2014, 16:00   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

К сожалению, сложно сказать что-либо точно не видя объявления переменных. Однако, в этом участке кода:
Цитата:
Код:
    if(DBLookupComboBox1.Text = 'Сотрудник') then
    begin
      isSotrudnik := true;
      isAdmin := true;
    end
    else isСотрудник := false;
Упорно напрашивается сделать
Код:
    if(DBLookupComboBox1.Text = 'Сотрудник') then
    begin
      isSotrudnik := true;
      isAdmin := true;
    end
    else isSotrudnik := false;
Извините, не хочу Вас обидеть, но в целом, вообще, на самом деле, очень странный код. Согласно ему, все пользователи входят в систему с правами администратора.
Streletz вне форума Ответить с цитированием
Старый 31.05.2014, 16:13   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да уж... код действительно требует топки...
Код:
procedure TForm21.Button1Click(Sender: TObject);
with  AdoQuery1 do begin
  SQL.Text:='SELECT * FROM Авторизация WHERE Логин = :log and Пароль=:pass';
  Parameters.ParamByName('log').Value:=DBLookupComboBox1.Text;
  Parameters.ParamByName('pass').Value:=DBEdit1.Text;
  Open
   if not eof then begin
   isAdmin :=(DBLookupComboBox1.Text = 'Администратор');
   isSotrudnik :=(DBLookupComboBox1.Text = 'Сотрудник');
  else begin
   MessageBox(Handle, 'Неверный логин или пароль!', 'Ошибка', MB_ICONERROR);
  end;
  close;
end;

    UserName := DBLookupComboBox1.Text;
    Form2.Show;
    Form21.Hide;

end;
Цитата:
при авторизации пользователей выдает ошибку.
Давай будем учиться называть вещи своими именами - при авторизации у тебя никакой ошибки не выдает. Потому что эти ошибки, что ты привел являются ошибками компиляции.
Цитата:
Извините, не хочу Вас обидеть, но в целом, вообще, на самом деле, очень странный код. Согласно ему, все пользователи входят в систему с правами администратора.
Кстати да. Может так нужно?:
Код:
   isAdmin :=(FieldByName('статус').AsString = 'Администратор');
   isSotrudnik :=(FieldByName('статус').AsString = 'Сотрудник');
Где поле "статус" выдуманное мной. подразумевающее роль юзера в той табице.
I'm learning to live...

Последний раз редактировалось Stilet; 31.05.2014 в 16:16.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при авторизации Glowworm PHP 1 05.06.2013 21:50
Ошибка при регистрации/авторизации mvc3 razor naximuz ASP.NET 0 19.09.2012 19:34
Механизм авторизации пользователей приложения ildar323 Безопасность, Шифрование 0 05.03.2011 14:37
Помогите сделать окно авторизации пользователей HAMMAN Помощь студентам 2 09.05.2008 00:02