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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2015, 14:13   #1
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию Условие по полю из таблицы

Здравствуйте, есть SQL таблица, в которой ФИО, тип, пароль. Необходимо проверить все условия по данным полям для открытия формы. Подскажите в чем ошибка
Код:
ADOQuery3.Active:=false;
ADOQuery3.SQL.CommaText:='SELECT * FROM users WHERE fio = :pfio and pass = :ppass';
ADOQuery3.Parameters.ParamByName('pfio').Value:=combobox2.text;
ADOQuery3.Parameters.ParamByName('ppass').Value:=edit1.Text;
ADOQuery3.Open;
    if  ADOQuery3.RecordCount <> 0 then begin
  form2.hide;
  Edit1.Clear;
  if  ADOTable1.FieldByName('tip').Value=('Бухгалтер') then Form3.Show
else   if  ADOTable1.FieldByName('tip').Value=('Директор') then Form4.Show
else   if  ADOTable1.FieldByName('tip').Value=('Кассир') then Form5.Show
  else ShowMessage('Пароль неверный');
end else ShowMessage('Пароль неверный');
end;
end;
ins813 вне форума Ответить с цитированием
Старый 16.07.2015, 14:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а чего это после проверки ADOQuery3
вдруг начали обращаться к ADOTable1 ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2015, 14:30   #3
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Почему ? ADOTable1 - вы наверное имели ввиду ?

Попробовал изменить на Query3 - при вводе верного пароля всплывает окно "Неправильный пароль"

Последний раз редактировалось Stilet; 16.07.2015 в 14:54.
ins813 вне форума Ответить с цитированием
Старый 16.07.2015, 14:47   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

При проверке запрошенные данные тримать нужно.
Iron Monk вне форума Ответить с цитированием
Старый 16.07.2015, 14:56   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ins813
А что за СУБД?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.07.2015, 15:25   #6
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

MS SQL 2008

Всем спасибо, из-за невнимательности произошла ошибка другого рода, а так код работает:

Последний раз редактировалось Stilet; 16.07.2015 в 15:28.
ins813 вне форума Ответить с цитированием
Старый 16.07.2015, 15:30   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Попробовал изменить на Query3 - при вводе верного пароля всплывает окно "Неправильный пароль"
А какоЕ из ...?(выделенных)
Код:
if  ADOQuery3.RecordCount <> 0 then begin
  form2.hide;
  Edit1.Clear;

  if  ADOTable1.FieldByName('tip').Value=('Бухгалтер') then Form3.Show
  else if  ADOTable1.FieldByName('tip').Value=('Директор') then Form4.Show
  else if  ADOTable1.FieldByName('tip').Value=('Кассир') then Form5.Show
  else ShowMessage('Пароль неверный');
end
else 
  ShowMessage('Пароль неверный');
P.S. Форумчанам знающим ответ просьба не отвечать, это вопрос именно к ТС.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 16.07.2015 в 15:37.
evg_m вне форума Ответить с цитированием
Старый 16.07.2015, 16:00   #8
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
А какоЕ из ...?(выделенных)
P.S. Форумчанам знающим ответ просьба не отвечать, это вопрос именно к ТС.
Вроде бы отписался что, разобрался - вот верный код:
Код:
ADOQuery3.Active:=false;
 ADOQuery3.SQL.CommaText:='SELECT * FROM users WHERE fio = :pfio and pass = :ppass';
 ADOQuery3.Parameters.ParamByName('pfio').Value:=combobox2.text;
 ADOQuery3.Parameters.ParamByName('ppass').Value:=edit1.Text;
 ADOQuery3.Open;
    if  ADOQuery3.RecordCount <> 0 then begin
  form2.hide;
  Edit1.Clear;
 if  ADOQuery3.FieldByName('tip').Value=('Бухгалтер') then Form3.Show
 else if ADOQuery3.FieldByName('tip').Value=('Директор') then Form4.Show
 else if ADOQuery3.FieldByName('tip').Value=('Кассир') then Form5.Show
end else ShowMessage('Пароль неверный');
end
ins813 вне форума Ответить с цитированием
Старый 16.07.2015, 17:42   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Подскажите в чем ошибка
Лучще покажу чем подскажу
Код:
procedure TfrmMain.VxodProgrammu;
  var s: string;
begin
  With DM.myqryUsers do begin
  Close;
  SQL.Clear;
  s:= 'SELECT * FROM Users where  u_login  ='+ QuotedStr(cbbLogin.text)+' and u_Password ='+ QuotedStr(edtParol.text);
  SQL.Add(s);
  Open;
   if not DM.myqryUsers.IsEmpty then
  begin
     frmMain.Hide; //--Форма для входа 
     frmpanel.Show; 
    end
  else
   begin
     MessageDlg('Неправильный логин или пароль',mtError,[mbOK],0)
   end;
end;

end.
При закрытии frmPanel
Код:
procedure TfrmPanel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   If Application.MessageBox('Вы действительно хотите закрыть программу','Предупреждения ',MB_ICONQUESTION+MB_YESNO)=IDYES
    then
     application.Terminate
   else
  Action:=caNone;
end;

Последний раз редактировалось xxbesoxx; 16.07.2015 в 18:00.
xxbesoxx вне форума Ответить с цитированием
Старый 16.07.2015, 17:48   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
А какоЕ из ...?(выделенных)
Код:
if  ADOQuery3.RecordCount <> 0 then begin
  form2.hide;
  Edit1.Clear;

  if  ADOTable1.FieldByName('tip').Value=('Бухгалтер') then Form3.Show
  else if  ADOTable1.FieldByName('tip').Value=('Директор') then Form4.Show
  else if  ADOTable1.FieldByName('tip').Value=('Кассир') then Form5.Show
  else ShowMessage('Пароль неверный');
end
else 
  ShowMessage('Пароль неверный');
P.S. Форумчанам знающим ответ просьба не отвечать, это вопрос именно к ТС.
Вы для разных должностей открывайте разние форму ? Form3.Show, Form4.Show Form5.Show зачем ?

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL Server: назначение автосчетчика полю уже существующей таблицы Blondy SQL, базы данных 13 08.10.2011 23:33
Поиск по любому полю таблицы jennifer120487 Microsoft Office Access 9 22.09.2011 07:52
Сортировка таблицы по пустому полю chinara БД в Delphi 6 15.12.2010 09:22
Поиск по полю таблицы БД MS Access в Делфи - приложении. _42 Помощь студентам 0 20.04.2010 18:43
Связанные таблицы - проблема при обращении к полю БД nataly_ukr БД в Delphi 7 13.11.2007 10:47