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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2012, 11:02   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
в таблице будет отображаться только эта найденная запись.
нет такого визуального компонента в Delphi как "таблица"
Вы имеете в виду DBGrid ?! и он связан через DataSource с вашим запросом?
Ну так выполните запрос "select * from ВашаТаблица" (без условий отбора) - отобразятся ВСЕ данные!


Цитата:
Забыл пояснить, LoginValue - это значение, которое я ввижу в Edit, как критерий поиска.
при чём здесь это?!
Вы написали строчку:
Цитата:
Код:
ADOQuery1.Parameters.ParamByName('LoginValue') .value:=Form_search.Edit1.text;
это означает, что у Вас В ЗАПРОСЕ есть параметер с именем LoginValue. я в тексте запроса такого параметра не вижу. Вот поэтому и спрашиваю, как это может работать?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.10.2012, 12:40   #12
stevieg
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 24
По умолчанию

С поиском по таблице разобрался. Спасибо.
И насчет первого вопроса, по поводу проверки уровня доступа при авторизации. Сделал как вы сказали, но теперь когда выполняю процедуру, говорит, что неверный логин /пароль. Какая то ошибка у меня в коде. Наведите на путь истинный

Код:
AdoQuery1.Close;
AdoQuery1.SQL.Text := 'select Login, Password, Access from Users '+      {Access - поле с правами доступа, то самое}
   ' where Login='+QuotedStr(Login.text)+
   ' and Password='+QuotedStr(Hash.Text)+
   ' and Access='+QuotedStr(AL.Text);     {AL - TEdit, куда помещается значение с поля Access, если я правильно понял и делать нужно именно так}
AdoQuery1.Open;
if  AdoQuery1.RecordCount = 0 then ShowMessage('Неверный логин/пароль.'
+#10#13+'Повторите попытку.')
  else if AdoQuery1.RecordCount = 1  then
      begin
      AL.text:= AdoQuery1.FieldByName('Access').AsString;
     if AL.text = 'Администратор' then Form_admin.Show
     else form_DB.show;
     ShowMessage('Вы вошли как '+AdoQuery1.FieldByName('Login').AsString);
ADoQuery1.Close;
stevieg вне форума Ответить с цитированием
Старый 04.10.2012, 12:52   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А как здравый смысл подсказывает без всякого программирования? Сначала ищем пользователя в таблице базы по логину и паролю (замечу - без всякого Access в условии выборки). И если пользователь найден, то в зависимости от значения Access ветвим выполнение программы.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.10.2012, 13:33   #14
stevieg
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
замечу - без всякого Access в условии выборки
Вы про это?

P.S. Я прошу меня строго не судить, я эти вещи только только осваиваю.)

Последний раз редактировалось stevieg; 04.10.2012 в 13:39.
stevieg вне форума Ответить с цитированием
Старый 04.10.2012, 13:58   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
   ' and Access='+QuotedStr(AL.Text);     {AL - TEdit, куда помещается значение с поля Access, если я правильно понял и делать нужно именно так}
согласен с Аватар. Условие проверки уровня явно ЛИШНЕЕ!
удалите помеченную строчку из запроса!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.10.2012, 14:03   #16
stevieg
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 24
По умолчанию

Ребята, спасибо, все сработало.
Если будут еще сложности, не постесняюсь спросить вас здесь.
stevieg вне форума Ответить с цитированием
Старый 04.10.2012, 14:27   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пожалуйста.

Цитата:
Если будут еще сложности, не постесняюсь спросить вас здесь.
Welcome!
Только помните - по правилам форума - "один вопрос - одна тема!"
поэтому, если вопрос будет связан с авторизацией - задавайте в данной теме, а если с чем-то другим, то лучше создать новую тему!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.10.2012, 15:47   #18
stevieg
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Welcome!
Только помните - по правилам форума - "один вопрос - одна тема!"
поэтому, если вопрос будет связан с авторизацией - задавайте в данной теме, а если с чем-то другим, то лучше создать новую тему!
Хорошо, учту. Еще раз спасибо, Сергей.
stevieg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация пользователя revaldo666 Microsoft Office Access 12 16.12.2012 00:29
Авторизация пользователя StudUL C++ Builder 13 06.06.2012 18:09
Авторизация пользователя в Делфи могилев БД в Delphi 9 12.05.2011 01:15
Авторизация пользователя mar4elo PHP 10 31.03.2011 19:28
авторизация и распознавание пользователя МаМи Microsoft Office Access 3 27.03.2010 21:03