Q&A

  • database1 콤보에서여~
현재 Tquery랑 Tdatabase을 사용해서 로그인시 로그인 창을
안뜨게 해서 사용중입니다.
그런데 만약 다른 서버의 데이타 베이스를 연결할때
Tquery랑 Tdatabase컴포넌트를 추가하지 않고
사용하려 합니다.  다른 databasename이라든지
부가적인 것을 코딩으로 바꿀 수 있는데여~
username과 password를 입력할때 반드시
databasename Event에 있는 onlogin핸들러
안에서 작성 해야 하나여?
그냥 tabpage같은데서 페이지 이동시
database가 바뀜과 동시에 username과 password를
입력할 수 있는방법은 없는것일까여?  과연~~
고수 님들께서는 정답을 알고 있으실 꺼라 믿습니다.

한수 가르침을 주시기 바랍니다.  
감기조심하시구여~  요새 저도 감기 땜시~~ 쿨럭쿨럭~
2  COMMENTS
  • Profile
    박성훈 2002.05.01 21:34

    안녕하세요?
    기냥 쉽게 생각하시면 될 것 같은데요.

    페이지가 바뀌면 로그인 창하나 띄운다음에 값을 받아와서 처리하시면 될 듯.


    //로그인폼:LoginForm
    function LoginDialog(var user_id: string; var user_pass:string): Boolean;
    begin
        with TLoginForm.Create(Application) do begin
            try
                Result:= ShowModal=mrOk;
                if Result then begin
                    user_id:= EdtUserId.Text;
                    user_pass:= EdtUserPass.Text;
                end;
            finally
                Free;
            end;
        end;
    end;


    //사용자 확인폼:Form1
    uses
       LoginFormU;

    {중략}

    procedure TForm1.PageControl1Change(Sender: TObject);
    var
       id, pass: string;
    begin
    if not LoginDialog(id, pass) then Exit;

    with database1 do begin
          connected:= false;
          try
              params.values['USER NAME']= id;
              params.values['PASSWORD']=  pass;
              connected:= true;
          except
             showmessage('데이터베이스에 연결 할 수 없네요ㅠ.ㅠ');
          end;
      end;
    end;

    즐프하세요^^.........
  • Profile
    김도성 2002.05.01 22:33
    제가 아무래도 질문을 이해하기 어렵게 해서 그런것 같네여~
    로그인폼으로 해서 값을 받아 오면쉽지만
    tabpage에서 페이지 이동시에
    자동으로 로그인폼 안뛰우고여~ 또 컴포넌트도 추가 안하고
    바로  databasename과 id와 passwd를 칠수 있냐는거져~
    제가 해봤을때는 id와passwd만 적으면 될것 같은데....
    이게 onlogin Event Handle에서만 먹는것 같아염~~ ㅠ_ㅠ