Create table with two columns (username , password )
CREATE TABLE PASSWORD
(USER_ID NUMBER(3) CONSTRAINT PASSWORD_USER_ID_PK PRIMARY KEY,
PASSWORD VARCHAR2(20) NOT NULL);
INSERT INTO PASSWORD (USER_ID,PASSWORD)
VALUES (1,100);
INSERT INTO PASSWORD (USER_ID,PASSWORD)
VALUES (2,200);
Second:
Create Forms Look Like the Following :
Third :
You have two way to check Username, password :
Using Trigger in When_button_presses
BEGIN
SELECT USER_ID
INTO :GLOBAL.USER_ID
FROM PASSWORD
WHERE USER_ID = :LOGIN.TI_USER_ID
AND PASSWORD= :LOGIN.TI_PASSWORD;
GO_BLOCK(‘PASSWORD’);
EXCEPTION
WHEN NO_DATA_FOUND THEN
:GLOBAL.COUNT := :GLOBAL.COUNT + 1;
IF :GLOBAL.COUNT = 1 THEN
MESSAGE(‘wrong’);
MESSAGE(‘wrong’);
ELSIF
:GLOBAL.COUNT = 2 THEN
MESSAGE(‘wrong’);
MESSAGE(‘wrong’);
ELSIF
:GLOBAL.COUNT = 3 THEN
EXIT_FORM;
END IF;
END;
there’s million way to do this . this is the easy one
you Can Create procedure inside Program_unit Name it Vaildation_pass.
But Inside When_button_pressed Write procedure name .
Vaildation_pass
PROCEDURE VALIDATION_PASS IS
BEGIN
SELECT USER_ID
INTO :GLOBAL.USER_ID
FROM PASSWORD
WHERE USER_ID = :LOGIN.TI_USER_ID
AND PASSWORD= :LOGIN.TI_PASSWORD;
GO_BLOCK(‘PASSWORD’);
EXCEPTION
WHEN NO_DATA_FOUND THEN
:GLOBAL.COUNT := :GLOBAL.COUNT + 1;
IF :GLOBAL.COUNT = 1 THEN
MESSAGE(wrong’);
MESSAGE(wrong’);
ELSIF
:GLOBAL.COUNT = 2 THEN
MESSAGE(wrong’);
MESSAGE(wrong’);
ELSIF
:GLOBAL.COUNT = 3 THEN
EXIT_FORM;
END IF;
END;
Notice that above code contain global_variable So We need to add Trigger (form_level)/When_new_forms_instance.
Inside this trigger add :GLOBAL.COUNT = 0
Subject Written by Arefa in Arabic Review it here
Thank You
Osama Mustafa