안녕하세요 고수님들...
내일까지 프로그램을 끝내야 하는데 시간도, 실력도 없어 고수님께 또 도움을 청합니다.
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;
한주가 시작되는 월요일 항상 행복하시고 즐거운 한 주가 되시길 바랍니다.
> 안녕하세요 고수님들...
>
> 내일까지 프로그램을 끝내야 하는데 시간도, 실력도 없어 고수님께 또 도움을 청합니다.
>
> 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