Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8347] Re:Re:[질문여]EDBEngineError : 'Name not unique in this Context'
델파이초보 [] 1060 읽음    2002-10-08 15:53
제가 코드를 안 남겨서 이해하기가 ... 영...^^;

대강 코드가 이렇습니다.

각각의 dll은 이러한 코드를 가지고 있습니다.

직접적인 코드를 못적는 저를 용서 해주세염..

dm(각 모듈이 가지고 있는 데이터모듈)
dmcmt(공통으로 사용하는 데이터듈)
dmpri(프로그램 첨 로그인했을 때 사용되는 데이터모듈)

dll을 처음 호출시에 실행하는 부분..中

dmcmt := Tdmcmt.create(application);
dm := Tdm.create(application);

dmcmt.resetdatabasename(dm.db.databasename); //db는 Tdatabase
dm.db.Handel := dmpri.database.Handle;

위를 통해 각 dll의 데이터모듈을 생성하고
공통데이터모듈의 데이터베이스이름을 각모듈의 데이터모듈의 데이터베이스이름으로 바꿔줬다.

처음 로그인할 때 데이터베이스의 조건이 달라져도 이에 유연하게 대처하기 위해 handle을 넘겨해결했습져..

가장 원시적인 방법으로 showmessage를 계속 달아서 확인해보니까..
dmcmt := Tdmcmt.create(application);

부분에 에러가 발생한 것 같아...

if not Assigned(dmcmt) then dmcmt := Tdmcmt.create(application);

이라 바꿔 줬더니 에러 발생이 나지 않았거든요..

그래 더 궁금해지더라구요..

만약 이 공통 데이터모듈이 문제 였다면 어찌하여 다른 dll들은 아무런 문제 없이 되는지..

다시금.말하자면.. 프로그램이 한번 호출한 dll들은 메모리에 프로그램이 죽을 때까지 메모리에 남아 있게 됩니다.

이유가 더 궁금해졌어여.. 왜 일까여??

---------------------------------------------------------------------

류종택 님이 쓰신 글 :
: 우선 BDE는 안사용 하시는 것이 좋습니다..
:
: 그리고 질문 내용으로는 알수 없으나 혹시나 모르니..
: TSession을 사용해 보세요..
: 내려놓으시고 AutoSessionName과 Active 프로퍼티를 True로 해보시기 바랍니다..
:
:
: 델파이초보 님이 쓰신 글 :
: : dll을 통해 데이터베이스를 접근합니다.. 물론 데이터모듈은 동적으로 사용되고요..
: :
: : 공통으로 사용되는 데이터 모듈이 하나 있구, 각 dll에 데이터 모듈이 하나 있습니다.
: :
: : dll을 초기화 할때 이 두 데이터모듈(DM)을 생성하고 공통DM의 databaseName을 dll 고유의
: :
: : DM의 databasename으로 바꿔주어서.. 실행하는데여..(코드를 올리면 좋으련만, 그럴 수 없는 처지라.. 지송...합니다. 그래더 많은 조언 부탁 드려여..)
: :
: : 이렇게 dll을 여러개를 만들었습니다.. 한 15개정도?
: :
: : 그런데 유독 세개의 dll만 에러가 발생하는데 이유를 찾지 못하겠습니다.
: :
: : 한 dll(편의상 1번이라 부를께여..) 1번을 부르고 종료하면(프로그램이 종료하기 전까지 한번 로딩된 녀석들을 기억하게 만들었거덩여.. 물론 제가 만드게 아니구 어떤 고수님이... ㅎ핫)
: :
: : 두번째 dll을 부를 때 제목과 같은 메시지가 뜨더라구요... 그래서 찾아 찾아 가보니...
: :
: : 공동 DM을 create(application)하는 부분에서 에러 발생이 떳어여... 참 이상한게. 이걸 제외한(총 3개만 그러네요) 다른 dll들은 전혀 문제 없이 돌아 갑니다. 서로 충돌도 없구요..
: :
: : 코딩도 차이가 없는데여... 고수님들의 조언을 부탁드립니다. 어떻게 에러를 잡을 지 막막하네요..
: :
: : 가능성을 집지 못하겠어여.. ^^;;

+ -

관련 글 리스트
8338 [질문여]EDBEngineError : 'Name not unique in this Context' 델파이초보 1621 2002/09/30
8340     Re:[질문여]EDBEngineError : 'Name not unique in this Context' 류종택 1166 2002/10/01
8347         Re:Re:[질문여]EDBEngineError : 'Name not unique in this Context' 델파이초보 1060 2002/10/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.