Q&A

  • DLL에서 동적으로 데이타베이스 SESSION공유방법?
DLL에 속에 폼이 있는데,폼내에는 QUERY가 있습니다!

이QUERY을 오픈할때마다 패스워들르 묻는데 없애는 방법을 알고싶군요

3  COMMENTS
  • Profile
    이상탁 2000.08.25 19:00
    답변이 제대로 될지 모르겠습니다만,



    단순히 DLL에서만 DB를 연결하실려면, 메인 폼에서 사용하고 있는 database component로 연결하지 않고 말이죠.



    DLL내에 있는 폼에 database component를 따로 사용하시는 것이 좋을 듯 합니다.



    그리고,Query를 그 database component로 연결해 보십시오.



    물론 database component에서 properties의 설정을 잘 설정하셔야겠지요.



    정승운 wrote:

    > DLL에 속에 폼이 있는데,폼내에는 QUERY가 있습니다!

    > 이QUERY을 오픈할때마다 패스워들르 묻는데 없애는 방법을 알고싶군요





  • Profile
    김일영 2000.08.25 04:25
    드디어 저랑 같은 고민을 하시는 분을 찾았군요! 이거 반가워해야 하는건지~

    그러니까 메인폼에는 Session을 두고, DLL의 폼에는 Query를 두고 메인폼의

    Session을 이용하고 싶다는 말씀이시죠?

    그런데 그게 안됩니다. HModule이 다르면 공유가 안됩니다.

    정확히는 DLL속의 Query가 참조할 수 있는 Session 리스트에 메인폼의 Session이

    포함되게 할 방법이 없어요.

    ADO로도 해봤는데(ADO는 COM이니까 좀 가능성이 있다고 봤는데) 잘 안되더군요.

    이거 되게 하시는 분 계시면 꼭 알려주세요. 저도 눈이 빠지게 기다리고 있습니다.



    정승운 wrote:

    > DLL에 속에 폼이 있는데,폼내에는 QUERY가 있습니다!

    > 이QUERY을 오픈할때마다 패스워들르 묻는데 없애는 방법을 알고싶군요



  • Profile
    유수정 2000.08.25 19:15
    안녕하세요?

    저도 같은 문제로 많은 고민을 했었습니다.

    (패스워드 다이얼로그 그거 죽이죠... 유져에게 한번만 패스워드를 입력하면됩니다...

    그러나 그것은 안될 말이죠... 이가 없으면 잇몸으로.... 우리는 재이잖아요?)



    DLL Session의 Alias 목록에는 메인폼의 엘리아스가 나타나지만 해당 알리아스의

    프로퍼티를 보면 'PASSWORD='은 빠져있게 되었더라고요. (DBTables.pas, DB.pas참조)



    아마 DLL에서 최로 한번만 로긴 다이얼로그가 뜨게될겁니다.

    이것만 없애주면 두리뭉실 넘어갈수 있죠.



    편법이지만 저는 이렇게 해결했습니다.

    1.Main폼이 시작될때 패스워드를 내부에 지정하여 다이얼로그가 생략되게할때

    DLL함수로 DLL내의 TDatabase를 설정하게합니다.

    단, 위에서 제가 그랬었죠... DLL에서 Alias는 볼 수 있다고요.

    그래서 저는 DLL에서 사용하는 모든 알리아스에는 메인폼 알리아스+'(DLL)'라고

    DLL의 데이타베이스를 설정합니다.

    물론 패스워드는 메인폼에서의 패스워드와 같게하고요....



    2.DLL에서 데이타베이스명을 무조건 바꾸죠...

    아니 무조건이 아니고요. DLL에서 데이타베이스명을 변경하기전것과 같다면요.

    그리고 DLL에서 특정처리가 끝나고 메인폼으로 복귀할때 데이타베이스명을 원상태로

    복원합니다.



    위와 같이해서 저는 효과를 보았습니다.

    효과 보다는 지리한 고민을 해결했다고 해야겠군요.





    김일영 wrote:

    > 드디어 저랑 같은 고민을 하시는 분을 찾았군요! 이거 반가워해야 하는건지~

    > 그러니까 메인폼에는 Session을 두고, DLL의 폼에는 Query를 두고 메인폼의

    > Session을 이용하고 싶다는 말씀이시죠?

    > 그런데 그게 안됩니다. HModule이 다르면 공유가 안됩니다.

    > 정확히는 DLL속의 Query가 참조할 수 있는 Session 리스트에 메인폼의 Session이

    > 포함되게 할 방법이 없어요.

    > ADO로도 해봤는데(ADO는 COM이니까 좀 가능성이 있다고 봤는데) 잘 안되더군요.

    > 이거 되게 하시는 분 계시면 꼭 알려주세요. 저도 눈이 빠지게 기다리고 있습니다.

    >

    > 정승운 wrote:

    > > DLL에 속에 폼이 있는데,폼내에는 QUERY가 있습니다!

    > > 이QUERY을 오픈할때마다 패스워들르 묻는데 없애는 방법을 알고싶군요

    >