|
1.Thread의 Execute에서 Synchronize로 함수를 호출할 경우 파라메타가 없을 경우는 아래와 같이 하면
되는데,만약 CheckSaveStop함수가 아래와 같은 함수라면 어떻게 호출하죠?
bool CheckSaveStop(int a,int b)
{
.....
}
//정대 체크 및 저장
Synchronize(CheckSaveStop); -> 파라메타가 없을 경우 호출
2. 위의 방법이 안되면, ADO Vcl을 Thread내에서 사용시 Execute내에서 해당 함수를 호출하면 CoInitialize에러가 나던데.......해결 방법 없나요?
예를 들면 SaveCompHis를 Execute내에서 호출하려면 어떻게 해야되죠?
void __fastcall TDatathread::Execute(void)
{
SaveCompHis(hodae); ->에러 남.(CoInitialize에러)
}
void __fastcall TDatathread::SaveCompHis(int Hodae)
{
TADOQuery *adoQ;
String Status;
adoQ = new TADOQuery(Application);
adoQ->ConnectionString = GetConnectionString(FormatDateTime("yyyymm",Now()),"H");
Status = "1";
adoQ->Close();
adoQ->SQL->Clear();
adoQ->SQL->Add("INSERT INTO CompHis ");
adoQ->SQL->Add("(Hodae,cTime,Status) VALUES ");
adoQ->SQL->Add("(" + String(Hodae+1) + ",");
adoQ->SQL->Add("'" + FormatDateTime("yyyy-mm-dd hh:nn:ss",Now()) + "',");
adoQ->SQL->Add("'" + Status + "')");
adoQ->ExecSQL();
delete adoQ;
}
|