|
#1
|
|||
|
|||
Пароль на БД
Здравствуйте уважаемые знатоки Делфи.
Подскажите как сделать использование учетных записей. Т.е. при вводе в Edit1 (Имя) и Edit2 (пароль), и имя, пароль верны, должно происходить событие, например открытие формы программы. Мне нужно всего две учетные записи. |
#2
|
||||
|
||||
Для какой базы?
|
#3
|
|||
|
|||
БД Paradox, мне всего лишь необходимо 2-е учетные записи, чтобы когда мы ввели имя и пароль первой уч. записи выскакивала форма2, а при активации второй уч. записи - форма 3.
|
#4
|
||||
|
||||
Сделай таблицу с полями login, pass, Form_name ну и заполни ее.
В проекте сделай 3 формы. В первой форме поля ввода пароля и логина, подключение к базе, кнопка. Ну и в обработчике Database1 BeforeConnect (или onClick у ккнопки) Код:
Table1.Active:=True; if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then Form_name.Show else ShowMessage('Неправильный логин/пароль!'); |
#5
|
|||
|
|||
Окей. а где идет раздиление на пароли (т.е. у меня получилось юзать оба пароля, но открывать только одну форму? я создал таблицу 1 и вней две записи
Login _____| ___Pass magazin ___ admin serv ___ admin |
#6
|
||||
|
||||
Цитата:
Сделай в таблипце еще поле Form_name Login | Pass | Form_Name magazin | admin | Form2 serv | admin | Form3 т.е. логину Magazin будет соответствовать Form2, а serv - Form3 Объяви переменную Form_Name:TForm; Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then begin // присваиваем пер-ой Form_name имя Формы из таблицы Form_name.Name:=Table1.FieldByName('Form_Name').AsString; Form_name.Show end else ShowMessage('Неправильный логин/пароль!'); Последний раз редактировалось TOJluK, 16.04.2009 в 11:56. |
#7
|
|||
|
|||
Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then begin // присваиваем пер-ой Form_name имя Формы из таблицы Form_name.Name:=Table1.FieldByName('Form_Name').AsString; Form_name.Show end else ShowMessage('Неправильный логин/пароль!'); Объявил переменную, создал поле Form_name, заполнил соответсвенно.В этом коде я лишь указал свою таблицу вместо Table1. Неработает пишит ошибку access violation at address in model Project 1 (нарушение доступа по адресу в проэкте). |
#8
|
||||
|
||||
Извини, я тупанул... Хотелось как лучше- получилось как всегда! )))
Вообщем сделай пока через IF. Типа: Код:
if Table1.Locate('Login;Pass',VarArrayOf([Edit1.text,Edit2.Text]),[]) = True then begin if Table1.FieldByName('Form_Name').AsString = 'Form2' then Form2.Show; if Table1.FieldByName('Form_Name').AsString = 'Form3' then Form3.Show; end else ShowMessage('Неправильный логин/пароль!'); Последний раз редактировалось TOJluK, 17.04.2009 в 11:01. |
#9
|
|||
|
|||
Работает, спасибо большое Толик
|