Q&A

  • 함수를 사용하라고 하던데...도무지...로그인 관련
안녕하세요 고수님들...



내일까지 프로그램을 끝내야 하는데 시간도, 실력도 없어 고수님께 또 도움을 청합니다.



DB : Paradox 7

컴포넌트 : Query, Datasource, DBGrid, UpdateSQL. 등등



Log-in창을 만들었는데 ID와 비밀 번호가 맞으면 입장을 하고 아니면 Guest로 입장을



하는 창입니다.



로그인하여 입장하면 저장버턴 등이 Enable되고 Guest로 들어오면 저장 버튼등이



Disalbe 되어 버튼을 사용못하게 했읍니다.



질문1(중요) : Guest로 입장을 한 다음 로그인 할려고 버튼을 만들었는데 어떻게



코딩을 해야할지 알수가 없어 고수님께 도움을 청합니다.



질문 2 : 로그인 할때 DB Table에 ID 와 Password의 일치 여부를 보는데..



왜 두번째(두번째 이상 레코드)의 ID와 password를 입력하면 로그인이 안되나요?



로그인창 소스



// 로그인 확인 버튼으로 입장하기

procedure Tpassword.BitBtn1Click(Sender: TObject);

begin

Guest := 1;

end;



// 방문 버튼으로 입장하기

procedure Tpassword.BitBtn2Click(Sender: TObject);

begin

Guest := 2;

end;



// 로그인창 닫기

procedure Tpassword.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if Guest < 1 then

Action :=caNone;

end;



// Main창을 열기

procedure Tpassword.FormCreate(Sender: TObject);

begin

Guest := 0;

end;





Main 창 소스



// 로그인 하기

procedure TEMain.FormShow(Sender: TObject);

begin

if password.ShowModal = mrOK then

begin



// ID와 Password 가 일치 하는 지 검사

if (Password.edit1.Text = Query3.FieldByName('ID').AsString) and

(Password.edit2.text = Query3.FieldByName('pw').AsString) then

begin



// Log-In 되었을 때 저장 등 필요 실행단추 활성화

ToolButton3.enabled := true;

ToolButton4.enabled := true;

showMessage(Query3.FieldByName('Name').AsString+'님이 로그인 했읍니다')

end else if Password.Guest = 2 then

showMessage('Guest로 로그인하셨읍니다!!')

else begin

showMessage('ID 및 Password가 맞지않습니다. Guest로 로그인 합니다.');

end;

end;

end;



한주가 시작되는 월요일 항상 행복하시고 즐거운 한 주가 되시길 바랍니다.

1  COMMENTS
  • Profile
    정성훈 2001.07.10 02:24
    아기코알라 wrote:

    > 안녕하세요 고수님들...

    >

    > 내일까지 프로그램을 끝내야 하는데 시간도, 실력도 없어 고수님께 또 도움을 청합니다.

    >

    > DB : Paradox 7

    > 컴포넌트 : Query, Datasource, DBGrid, UpdateSQL. 등등

    >

    > Log-in창을 만들었는데 ID와 비밀 번호가 맞으면 입장을 하고 아니면 Guest로 입장을

    >

    > 하는 창입니다.

    >

    > 로그인하여 입장하면 저장버턴 등이 Enable되고 Guest로 들어오면 저장 버튼등이

    >

    > Disalbe 되어 버튼을 사용못하게 했읍니다.

    >

    > 질문1(중요) : Guest로 입장을 한 다음 로그인 할려고 버튼을 만들었는데 어떻게

    >

    > 코딩을 해야할지 알수가 없어 고수님께 도움을 청합니다.

    >

    > 질문 2 : 로그인 할때 DB Table에 ID 와 Password의 일치 여부를 보는데..

    >

    > 왜 두번째(두번째 이상 레코드)의 ID와 password를 입력하면 로그인이 안되나요?

    >

    > 로그인창 소스

    >

    > // 로그인 확인 버튼으로 입장하기

    > procedure Tpassword.BitBtn1Click(Sender: TObject);

    > begin

    > Guest := 1;

    > end;

    >

    > // 방문 버튼으로 입장하기

    > procedure Tpassword.BitBtn2Click(Sender: TObject);

    > begin

    > Guest := 2;

    > end;

    >

    > // 로그인창 닫기

    > procedure Tpassword.FormClose(Sender: TObject; var Action: TCloseAction);

    > begin

    > if Guest < 1 then

    > Action :=caNone;

    > end;

    >

    > // Main창을 열기

    > procedure Tpassword.FormCreate(Sender: TObject);

    > begin

    > Guest := 0;

    > end;

    >

    >

    > Main 창 소스

    >

    > // 로그인 하기

    > procedure TEMain.FormShow(Sender: TObject);

    > begin

    > if password.ShowModal = mrOK then

    > begin

    >

    > // ID와 Password 가 일치 하는 지 검사

    > if (Password.edit1.Text = Query3.FieldByName('ID').AsString) and

    > (Password.edit2.text = Query3.FieldByName('pw').AsString) then

    > begin

    >

    > // Log-In 되었을 때 저장 등 필요 실행단추 활성화

    > ToolButton3.enabled := true;

    > ToolButton4.enabled := true;

    > showMessage(Query3.FieldByName('Name').AsString+'님이 로그인 했읍니다')

    > end else if Password.Guest = 2 then

    > showMessage('Guest로 로그인하셨읍니다!!')

    > else begin

    > showMessage('ID 및 Password가 맞지않습니다. Guest로 로그인 합니다.');

    > end;

    > end;

    > end;

    >

    > 한주가 시작되는 월요일 항상 행복하시고 즐거운 한 주가 되시길 바랍니다.





    Next 문이 빠진거 같네요.

    지금 보면 그냥 DB를 오픈한 상태인데

    그러면 자동적으로 레코드는 젤 처음으로 갈것이구요

    Next가 없다면 당연히 첫 레코드와 비교만 하겠죠..



    이건 제 생각인데. 막연히 formshow에서 비교하지 마시고

    비교function 을 하나 만드신다음 Boolean 을 리턴받구



    formshow에서 레코드 검색할때 맞으면 브레이크를 거시구

    틀리면 마지막 레코드까지 돌린다음

    사용자가 아니면 게스트겠죠.



    그럼 20000