|
ADO로 연결되는 DB 관련 로직을 TDataModule로 만들었습니다.
그리고, Thread에서 사용할 DB 전용 객체를 만들기 위해서 Thread 생성자에다가 아래와 같이
새로 생성했는데.. 에러를 내는 것은 아니지만, CodeGuard에서 첨부한 그림과 같은 메세지가
나옵니다. 이문제를 어떻게 해야 할 지...?
// 스레드의 생성자 부분 ----------------------------------------------
__fastcall TCarThread::TCarThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
m_pDM = new TDM(NULL);
m_pDM->Open(MDIMainForm->m_DBIP);
}
// TDataModel의 Open Method --------------------------------------
bool __fastcall TDM::Open(AnsiString IP)
{
if ( m_bOpen ) {
return true;
}
try {
AnsiString sConn =
"Provider=SQLOLEDB.1;Data Source=" + IP + ";User ID=xxx;Password=xxx;"
"Initial Catalog=DLTSC;Persist Security Info=True";
WideString sWideConn = sConn;
m_pConn = new TADOConnection(NULL);
m_pConn->ConnectionString = sWideConn;
m_pConn->Open();
m_bOpen = true; // flag값 setting
} catch (EDatabaseError &e) {
// 에러 처리 루틴 제작
m_bOpen = false;
return false;
}
return true;
}
혹시 DFM 파일 가지고 폼을 생성하는 것이 있던데 .. 그것으로 생성해야 하나요?
동적으로 생성하는 것 말고, 그냥 Global하게 생성되는 것(자동으로 알아서 되는 것)은
이러한 아무 문제없이 생성되어 집니다.
어떤 해결책이 있는 지요?
|