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

C++빌더 Q&A
C++Builder Programming Q&A
[75527] [수정][질문]서비스 프로그램 내에서 Query시 작동 중지 현상
빌더개발자 [] 2409 읽음    2019-08-19 18:03
안녕하세요. 빌더로 프로그래밍중인 개발자입니다.

많이 찾아보긴 했는데 서비스+DB에 대한 자료가 없어서 이렇게 글 남깁니다.

우선 서비스 프로그램에서 FDConnection과 FDQuery를 이용해 DB를 구축했는데요.

void __fastcall TService::ServiceExecute(TService *Sender)
{
    Stream = new TMemoryStream();
    try
    {
        try
        {
            idServer->Bindings->Clear();
            idServer->Bindings->Add()->IP   = GetLocalIP();
            idServer->Bindings->Add()->Port = 800;
            idServer->Bindings->Add()->IPVersion = Id_IPv4;

            idServer->Active = true;

            DM->qrDevice->Active = true;

            while (!Terminated)
            {
                ServiceThread->ProcessRequests(true);
            }
            idServer->Active = false;
        }
        catch(...)
        {
            dbg(L"Error : Service Execute (Error Code : %d)", GetLastError());
        }
    }
    __finally
    {
        dbg(L"Terminate : Service Execute", "");
        delete Stream;
    }
}

Query는 "select * from Power"로 간단히 Power정보를 가져옵니다. (현재 Table은 데이터가 없는 상태입니다)
기존 프로그램에서 잘 됐었는데 Service 프로그램으로 옮긴 뒤
디자인 타임에서 FDQuery의 Active를 True로 설정해놓고 실행하면 정상동작 하지만
런타임에서 Open 또는 Active = true를 할 경우 서비스가 중지되는 현상이 발생합니다.

그리고 GetLastError는 0을 뱉어냅니다.. 어떤 오류인지에 대한 정보가 없어 질문이 좀 난해하네요..

혹시 서비스 프로그램 내에서 DB를 사용할때 주의해야 할 사항 같은게 있나요? 아니면 사용이 불가능한가요?

답변 주시면 감사드리겠습니다.

+ -

관련 글 리스트
75527 [수정][질문]서비스 프로그램 내에서 Query시 작동 중지 현상 빌더개발자 2409 2019/08/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.