자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 39525
공지 유용한 관련 사이트 관리자2 2014.03.20 79022
1852 XE8 OS 32bit에서는 FireDAC CreateDB가 잘 되는데 64bit로 빌더를 바꿔서 하면 에라가 발생? 바람돌이 2016.07.12 482
1851 Android 에서 TMemo에 여러개의 줄이 입력되지 않습니다 [5] 지병철 2017.10.26 482
1850 cap파일 배포시 인증 문제에 대한 자문을 요청드립니다. [1] 데브기어 2017.11.15 482
1849 델파이 10.1 - 안드로이드 서비스 개발시 'activity not found, maybe you are in a service' 에러 [3] 봄이아빠 2017.03.30 482
1848 RAD Studio 10.3.2 사용 문의입니다. [1] file ip7203 2019.07.26 483
1847 listview 에서 런타임에 이미지 넣는부분 [1] 종결자 2019.10.12 483
1846 FireDAC 질문입니다. [4] 황금의미르 2017.01.20 484
1845 모바일 앱 개발 시 구글음성 입력 기능을 호출하는 샘플이 있나요? [1] 손보라 2017.04.14 484
1844 도킹창 이동시 버벅거리는 현상 [1] 손승규 2017.04.18 484
1843 [문의]프로그램 메모리릭 오류 체크 [1] 공수래 2021.03.25 484
1842 No provisioning profile found for the selected build configuration 에라가 나는데요? [3] file 화이부동 2018.10.12 485
1841 APP STORE IOS....앱 아이콘을 Xcode의 자산 카탈로그에 추가해야합니다 문제 [1] 성후아빠 2020.07.07 485
1840 델파이 10 stringgrid 관련 [5] 개미 2020.12.02 485
1839 Delphi Rio 10.3.3 AAB 로컬서비스 실행시 문제점 해결 방법문의 [3] silkroad99 2019.12.23 486
1838 XE8 Android MainForm 문제 불나방 2015.04.29 486
1837 Exception EFilerError in module rtl190.bpl at 000FF30F 에러가 납니다. 쭈니쿤 2016.01.15 486
1836 Delphi 10.4 iOS Camera 실행 오류 [1] 로로봉 2020.08.19 486
1835 델파이 RIO Webbrowser size 문의? [2] silkroad99 2018.12.27 487
1834 10.4 Sydney 코드 인사이트 문제 [1] 불나방 2020.06.15 487
1833 FireDac 쿼리 실행시 가끔 발생되는 Access Violation을 못잡겠습니다.. [1] 육식육식 2021.01.20 487