자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

델파이로  DLL 을 만들어서 Node JS 와 인터페이스 하고 있습니다.

 

DLL 내부에서, FireDAC 의 FDConnection + FDQuery 콤포넌트를 이용해서 자료를 잘 읽고 쓰고 하고 있습니다.

 

문제는, 해당 DLL 을 불러다가 사용하는 다른 프로그램을 종료할 때  Runtime ERROR 216 이 발생합니다.

 

FDConnection 으로 PostgresSql 을 연결해서 사용할 때는 문제가 없는데 FireBird DB 연결 후 종료 시 에러가 발생합니다.

해당 프로그램에서 DB 연결을 끊어놓고 종료를 하면 문제가 발생하지 않는 걸 보아,

예측컨데 DLL 의 FDConnection 을 통해 연결된 FireBird( FDConnection ) 문제로 보입니다.

 

그래서, 

DLLMain 의 DLL_PROCESS_DETACH 이벤트 발생 시 FDConnection을 끊어주는 문장을 실행시켰지만

동작하지 않습니다.  모래시계가 잠깐 나오다가..DLL 은 종료가 되지만 DLL을 호출한 프로그램은 런타임오류가 발생합니다.

 

혹시, FireBird 와 관련해서 다르게 해야하는 것이 있는 지 도움 부탁드립니다.

 

-------------- DLLMAIN 이벤트 처리 내용 -----------------

procedure DllMain(dwReason: DWORD);

begin

    case dwReason of

      // process attaches = 1

      DLL_PROCESS_ATTACH: begin

        OutputDebugString('Process Attach!');

        CoInitializeEx(nil, COINIT_APARTMENTTHREADED);

      end;

      // thread attaches = 2

      DLL_THREAD_ATTACH: begin

        OutputDebugString('Thread Attach');

      end;

      // thread detaches = 3

      DLL_THREAD_DETACH: begin

        OutputDebugString('Thread Detach');

      end;

      // process detaches = 0

      DLL_PROCESS_DETACH: begin

        FDConnection1.Close;  <----------------  동작이 되지 않습니다.  또는 FDConnection1.Connected := False; 도 동작하지 않습니다.

        OutputDebugString('Detach!');                ( FireBird 에서만 안됩니다.  PostgresSql 은 이상이 없습니다. )

        CoUninitialize;

      end;

    end;

end;

 

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 19791
공지 유용한 관련 사이트 관리자2 2014.03.20 58763
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102316
1839 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 21 - Exercise 2 [1] 관리자 2016.05.27 166
1838 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 22 - Exercise 1 [2] 관리자 2016.05.27 150
1837 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 22 - Exercise 2 [2] file 관리자 2016.05.27 121
1836 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 22 - Exercise 3 [2] 관리자 2016.05.27 111
1835 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 23 - Exercise 1 관리자 2016.05.27 175
1834 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 23 - Exercise 2 [2] 관리자 2016.05.27 207
1833 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 23 - Exercise 3 [2] 관리자 2016.05.27 220
1832 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 23 - Exercise 4 [2] 관리자 2016.05.27 144
1831 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 24 - Exercise 1 [2] 관리자 2016.05.27 110
1830 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 24 - Exercise 2 [2] 관리자 2016.05.27 145
1829 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 24 - Exercise 3 [2] 관리자 2016.05.27 117
1828 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 24 - Exercise 4 [2] file 관리자 2016.05.27 137
1827 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 25 - Exercise 1 [2] 관리자 2016.05.27 118
1826 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 25 - Exercise 2 [2] 관리자 2016.05.27 128
1825 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 25 - Exercise 3 [2] 관리자 2016.05.27 162
1824 TMainMenu Height 문의 드립니다 [1] if문 2016.05.30 151
1823 윈도우즈 환경에서 TTS를 구현할 수 있나요? [3] 손보라 2016.05.31 845
1822 firemonkey로 window와 mac OS 를 개발하는 중입니다. 모바일과 푸쉬를 주고 받을수 있는지 궁금합니다. [1] 운땡최향태 2016.05.31 179
1821 델파이 소스를 secure coding 검증 툴이 없는지요? 아솔루션 2016.05.31 150
1820 C++ Builder에서 Prism과 MVVM 패턴을 지원하나요? [1] 손보라 2016.05.31 437