|
아래와 빌더 예제에 나와있는 방법대로 선택된 레코드를 다른 테이블로 복사할 때 이상없이 잘 동작합니다.
그런데 레코드 건 수가 10,000개 이상을 선택하여 다른 테이블에 복사하면 정말정말 오래걸립니다.
혹시 선택된 레코드를 빠른 방법으로 다른 테이블에 복사하는 방법이 없을까요?
고수님들 꼭 좀 부탁합니다.
감사합니다.
<예제>
if (DBGridAddr->SelectedRows->Count > 0)
{
AnsiString sRef, sAddr, sIns1, sIns2, sIns3, sIns4, sIns5;
int nList_no;
DB->TableAddr->BatchMode = true;
DB->TableSubmit->BatchMode = true;
for (int i=0; i < DBGridAddr->SelectedRows->Count; i++)
{
DB->TableAddr->GotoBookmark((void *)DBGridAddr->SelectedRows->Items[i].c_str());
sRef = DB->TableAddr->FieldByName("ref")->AsString;
sAddr = DB->TableAddr->FieldByName("addr")->AsString;
sIns1 = DB->TableAddr->FieldByName("ins1")->AsString;
sIns2 = DB->TableAddr->FieldByName("ins2")->AsString;
sIns3 = DB->TableAddr->FieldByName("ins3")->AsString;
sIns4 = DB->TableAddr->FieldByName("ins4")->AsString;
sIns5 = DB->TableAddr->FieldByName("ins5")->AsString;
//sAddr = pDS->Fields->Fields[2]->AsString;
DB->TableSubmit->AppendRecord(ARRAYOFCONST((sRef, sAddr, sIns1, sIns2, sIns3, sIns4, sIns5)));
}
DB->TableAddr->BatchMode = false;
DB->TableSubmit->BatchMode = false;
}
|