Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.03.2011, 07:46
Аватар для RusSTEEL
RusSTEEL RusSTEEL вне форума
Новичок
 
Регистрация: 10.03.2011
Сообщения: 53
Репутация: 10
По умолчанию Логин и пароль сравнение с таблицой

юзал поиск аналогичного с моей проблемой нету, так что пожалуйста не посылайте в поиск. Суть темы такова:
есть таблица пользователи где строки Имя /пароль / допуск как сделать так чтобы на форме авторизации(ввода логина и пароля) он сравнивал введенный текст в edit1(логин) и edit2(пароль) с таблицей пользователи с соответствующими полями. Предполагаю нужен запрос такого типа, не могли бы вы мне его подсказать)

Код:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('***** user '+
                '(Logun, password ) values'+
                '('+#39+edit1.Text+#39+', '+#39+edit2.');
Query1.execSQL;
Query1.Close;
close;
Ответить с цитированием
  #2  
Старый 11.03.2011, 08:00
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Код:
select `login` from `user` where `login`='LOGIN' and `password`='PASSWORD'; 
Где:
  • `user` - таблица с юзверями
  • `login` - имя поля с логином
  • `password` - имя поля с паролем
  • 'LOGIN' и 'PASSWORD' - то, что ввели в эдиты.
Подставляй.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 11.03.2011 в 08:02.
Ответить с цитированием
  #3  
Старый 11.03.2011, 08:08
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Я так понимаю, вы описали часть синтаксиса запроса на вставку строки в таблицу, а нужен запрос на проверку существования записи в таблице пользователей, к примеру:
Код:
  select user_id, user_fio, user_role
  from users  
  where user_login = :login
     and user_password = :password
Открываем данный запрос, через Open; или Active:=true; и смотрим, если есть хотя бы одна запись в возвращаемом результате, то выполняем вход в программу, запоминая данные пользователя (к примеру, ФИО и роль).
Код:
    with qryLogIn do
      begin
      if Active then Close;
      ParamByName('login').AsString:=teLogin.Text;
      ParamByName('password').AsString:=tePassword.Text;
      Open;
      if RecordCount > 0 then
        begin
        First;
        DM.UserName:=FieldByName('user_fio').AsString;
        DM.UserId:=FieldByName('user_id').AsInteger;
        DM.RoleId:=FieldByName('user_role_id').AsInteger;
        //DM - DataModule, именно там лучше хранить данные такого рода и использовать во разных местах программы
        Close;
        ModalResult:=mrOk; //в данном случае используется Splash-окно, именно здесь осуществляем вход в программу
        end
          else
            begin
            ShowMessage('Введены неправильно логин или пароль.');
            Close;
            end;
     end;
А поиском, вы похоже, даже не пользовались, подобных тем в интернете и на данном форуме обсуждалось много раз.

Эх, DJ PhoeniX, быстрый ты однако

Последний раз редактировалось Asinkrit, 11.03.2011 в 08:12.
Ответить с цитированием
  #4  
Старый 11.03.2011, 08:26
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ну, ясен пень, это ж я Фениксы, они такие, шустрые...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 11.03.2011, 08:32
Аватар для RusSTEEL
RusSTEEL RusSTEEL вне форума
Новичок
 
Регистрация: 10.03.2011
Сообщения: 53
Репутация: 10
По умолчанию

Цитата:
Сообщение от Asinkrit
Открываем данный запрос, через Open; или Active:=true; и смотрим, если есть хотя бы одна запись в возвращаемом результате, то выполняем вход в программу, запоминая данные пользователя (к примеру, ФИО и роль).
Эх, DJ PhoeniX, быстрый ты однако
где это? О_О
Ответить с цитированием
  #6  
Старый 11.03.2011, 08:50
stil stil вне форума
Новичок
 
Регистрация: 24.11.2010
Сообщения: 91
Репутация: 41
По умолчанию

У TQuery.
Код:
Query1.open;
или
query1.active:=true;
Используется если предпологается что запрос вернет результат, применяется в запросах на выборку.
Код:
Query1.execsql;
вот это если результат не возвращается. например добавление или удаление.
Ответить с цитированием
  #7  
Старый 11.03.2011, 10:02
Аватар для RusSTEEL
RusSTEEL RusSTEEL вне форума
Новичок
 
Регистрация: 10.03.2011
Сообщения: 53
Репутация: 10
По умолчанию

Люди добрые, и в частности,Asinkrit, разложите пожалуйста по пунктам че куда вписать. В делфи далеко не про

Цитата:
Сообщение от Asinkrit
запрос на проверку существования записи в таблице пользователей, к примеру:
Код:
  select user_id, user_fio, user_role
  from users  
  where user_login = :login
     and user_password = :password
Открываем данный запрос, через Open; или Active:=true; и смотрим, если есть хотя бы одна запись в возвращаемом результате, то выполняем вход в программу, запоминая данные пользователя (к примеру, ФИО и роль).
Код:
    with qryLogIn do
      begin
      if Active then Close;
      ParamByName('login').AsString:=teLogin.Text;
      ParamByName('password').AsString:=tePassword.Text;
      Open;
      if RecordCount > 0 then
        begin
        First;
        DM.UserName:=FieldByName('user_fio').AsString;
        DM.UserId:=FieldByName('user_id').AsInteger;
        DM.RoleId:=FieldByName('user_role_id').AsInteger;
        //DM - DataModule, именно там лучше хранить данные такого рода и использовать во разных местах программы
        Close;
        ModalResult:=mrOk; //в данном случае используется Splash-окно, именно здесь осуществляем вход в программу
        end
          else
            begin
            ShowMessage('Введены неправильно логин или пароль.');
            Close;
            end;
     end;
Предпологаю это вводим в баттон1(под названием ок) или в в квери в SQL где прописываюст все запросы?
Код:
  select user_id, user_fio, user_role
  from users  
  where user_login = :login
     and user_password = :password

Цитата:
Открываем данный запрос, через Open; или Active:=true; и смотрим,
что это вообще?
а кстати не мог найти функции спойлеров на форуме
Ответить с цитированием
  #8  
Старый 11.03.2011, 13:13
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Это рабочий вариант кода, из одного из моих проектов, запрос размещается в ваш Querry1, у меня это qryLogIn, сам код, на исполнения на кнопку "Ок".

Я думаю, вам стоит для начала немного теорию программирования по изучать, иначе, единственное решение которое вас устроит, это написать все за вас (в это случае, в раздел работа), так как вы в программировании полный ноль.

Ищите литературу "Дельфи и Базы данных", так же, неплохо бы было и базовый синтаксис SQL запросов освоить, иначе у вас ничего не получится написать, а если хотите что бы я вам все разжевал, да по полочкам разложил, то боюсь меня надо для этого чем то мотивировать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025