|
계속 해서 Table를 가지고 놀다 보니(백수 이므로 놀고 있음)
또 계속해서 복사 문제와 씨름을 하다 보니
(이번 복사하는 것은 61초 정도 걸리네요)
이래서 또 도움말은 보고 있는데,,,,
도움말 제목이 " Importing data from another table "
Importing라고 가져오기 그래,, 이거다..
해서 쭈~~~~욱 보니 마지막 줄에,
see "Using TBatchMove. ==> 이렇게 써 있는요....
그래서 클릭해서 봤더니
역시, 해서
속도가 13초 정도가 나옵니다.
원본 Table에는
레코드 : 369563
필드 : 19
대상 :
필드 : 5
[소스]
void ... (void);
{
int CallCount;
AnsiString temp, DBFileName;
CallCount =0;
while( true ) {
temp = "SELECT re_inx, re_member, re_barcode, ";
temp += "re_barcode AS re_title, re_rentDate, re_rentTime FROM brent ";
temp += "WHERE re_member>=:stt AND re_member<:ett ORDER BY re_member ASC";
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(temp);
Query1->ParamByName("stt")->AsInteger = NumberCount*CallCount;
Query1->ParamByName("ett")->AsInteger = (NumberCount*(CallCount+1))-1;
Query1->Open();
Query1->First();
if( Query1->Eof ) {
break;
}
DBFileName = DBFileName.sprintf("M%05d-%05d", NumberCount*CallCount, (NumberCount*(CallCount+1))-1);
MakeTable("", DBFileName);
Table2->Close();
Table2->TableName = DBFileName;
Table2->Open();
BatchMove1->Execute();
++CallCount;
}
}
void __fastcall TForm1::MakeTable(const AnsiString &TableName, const AnsiString &FileName)
{
Table2->Active = false;
Table2->DatabaseName = "book_View";
Table2->TableName = FileName;
Table2->TableType = ttParadox;
Table2->FieldDefs->Clear();
TFieldDef *NewField;
NewField = Table2->FieldDefs->AddFieldDef(); // define first field
NewField->DataType = ftInteger;
NewField->Name = "Inx";
NewField = Table2->FieldDefs->AddFieldDef(); // define first field
NewField->DataType = ftInteger;
NewField->Name = "Member";
NewField = Table2->FieldDefs->AddFieldDef(); // define first field
NewField->DataType = ftInteger;
NewField->Name = "Barcode";
NewField = Table2->FieldDefs->AddFieldDef(); // define second field
NewField->DataType = ftString;
NewField->Size = 40;
NewField->Name = "Title";
NewField = Table2->FieldDefs->AddFieldDef(); // define second field
NewField->DataType = ftString;
NewField->Size = 10;
NewField->Name = "RentDate";
NewField = Table2->FieldDefs->AddFieldDef(); // define second field
NewField->DataType = ftString;
NewField->Size = 5;
NewField->Name = "RentTime";
Table2->IndexDefs->Clear();
TIndexDef *NewIndex;
NewIndex = Table2->IndexDefs->AddIndexDef(); // add an index
NewIndex->Name = "PrimaryIndex";
NewIndex->Fields = "Inx";
NewIndex->Options << ixPrimary << ixUnique;
Table2->CreateTable(); // create the table
}
|