Delphi База данных

программирование Delphi DB

Здравствуйте, как правильно можно идентифицировать пользователя(user/admin) и перенаправляет посетителя на нужную страницу?, в моем примере правильно ли сформулирована задача?!

В проекте есть DataSource1-Query1 подключен к таблице UserList в нем хранятся все логины и пароли. На главном странице есть IWEdit1 для логина и IWEdit2 для пароля, если вошел в систему пользователь перенаправляется на IWForm3, а если админ то на IWForm2. Админов и пользователей могут быть несколько!

Все это написана на IntrаWеb(Dеlрhi7)!

А вот и сам исходник
procedure TformMain.IWAppFormCreate(Sender: TObject);
begin
DataModule1.Query1.Close;
DataModule1.Query1.SQL.Clear;
DataModule1.Query1.SQL.Add('Select * from UserList');
DataModule1.Query1.Open;
DataModule1.Query1.Active:=true;
TIWForm2.Create(WebApplication).Show;
end;

procedure TformMain.IWButton1Click(Sender: TObject);
var
Res: Variant;
begin
Res := DataModule1.Query1.Lookup('Login;Password', VarArrayOf([IWEdit1.Text,
IWEdit2.Text]), 'Rang');

if Res <> Null then
begin
if Res = 'Admin' then IWForm2.Create(WebApplication).Show else
if Res = 'User' then TIWForm3.Create(WebApplication).Show;
end;

end;

Примечание:
В таблице UserList есть поле Login, Password, Rang!
Ответы:
Вытаскивать всю табл. пользователей - не есть гуд.
1) DataModule1.Query1.Active:=true; - лишняя строчка, она выполняется при open
2) DataModule1.Query1.SQL.Add('Select * from UserList where login='UserLogin' '); - выбирать нужно одного пользователя (иначе это дырка для взломщиков), после этого
If  DataModule1.Query1.FieldValues['Password']=xPass then begon
. . . . .
end;


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.