자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 39516
공지 유용한 관련 사이트 관리자2 2014.03.20 79018
389 xe10.1에서 ActiveX , *.ocx 설치방법 부탁합니다 [3] 모나도 2016.11.04 1546
388 [안드로이드] 앱 배포후 업데이트시 overwrite 안됩니다.해결방법좀 알려주세요 ㅠ. [2] 한사람 2016.03.27 1546
387 서버컴퓨터로 파일 전송하는데 에러가발생해서 질문드립니다...!! [2] syc 2016.08.12 1551
386 idhttp로 https주소로 post 방식으로 API insert 문의드립니다... [2] 스마일 2021.03.26 1552
385 Delphi XE6 에서 IdFTP 문의 합니다. [1] 파빌신 2014.07.30 1554
384 secure coding 가이드 문의 (delphi 용) 저팔계 2014.09.26 1563
383 블루투스 송수신 질문이 있습니다. [3] 데브순 2018.03.23 1567
382 DELPHI 7.0 등에서 사용하던 DBGRIDEH의 footer 기능 관련 [1] jcitec 2015.03.05 1567
381 [DelphiXE7] 컨트롤을 동적생성하여 해제하면 Form을 닫을 수 없게 됩니다. [3] file 사조성 2014.12.21 1571
380 앱 광고 적용하는 방법.. [1] file 김하나 2014.04.26 1578
379 [질문] 이미지를 datasnap을 사용하여 서버로 전송밥법 [2] 화현 2021.08.08 1586
378 델파이 이벤트 처리시 에러입니다. [1] file 시크원 2014.07.19 1595
377 RAD 서버 운영환경에 설치중 오류 [2] file 노란바나나 2019.10.30 1598
376 [FireDAC][Phys][Ora]-315. Cannot get vendor library entry point[s]. 오류 대처방법 [1] 험프리 2017.01.11 1599
375 FireDAC - PostgreSQL 연동 과정에서 64비트 문제 발생 [5] file 정한결 2019.02.13 1599
374 ios 개발시 provisioning 등록 방법 문의 [3] file 사랑남 2015.01.09 1600
373 바코드로부터 입력과 키보드 입력을 어떻게 구분하나요? [1] from5 2016.01.09 1601
372 delete 문을 TServerMethods1 을 통해서 하려니까 Error가 나네요? [1] 어려워 2014.07.23 1603
371 델파이에서 마리아DB(MariaDB)와 연결할 수 있나요? [1] Humphery 2015.03.31 1603
370 [세미나] 6월 10일 웹세미나의 질문답변 Humphery 2014.06.12 1603