| 
 
안녕하세요. 빌더로 프로그래밍중인 개발자입니다.
 
 많이 찾아보긴 했는데 서비스+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를 사용할때 주의해야 할 사항 같은게 있나요? 아니면 사용이 불가능한가요?
 
 답변 주시면 감사드리겠습니다.
 
 
    |