지송합니다.
맨날 질문만 하궁... 내공이 약해서리...
Ado를 쓰고있슴다. Query로 검색된 결과를 query_table로 복사하여
따로 관리하고 시픈뎅, 복사하는데 시간이 넘 걸립니다.
테이블 복사 소스는 아래와 같습니다.
1000개 이상 레코드를 복사할땐, 시간이 넘 걸립니다.
고수님들의 조언 부탁합니다.
for j := 0 to DM_CIMDB.AdoQry_Grid.RecordCount - 1 do
begin
for i := 0 to (DM_CIMDB.AdoQry_Grid.FieldCount - 1) do
begin
DM_CIMDB.AdoTbl_QryDB.Append;
DM_CIMDB.AdoTbl_QryDB.Edit;
DM_CIMDB.AdoTbl_QryDB.Fields[i].Assign(DM_CIMDB.AdoQry_Grid.Fields[i]);
try
DM_CIMDB.AdoTbl_QryDB.Post;
except
Showmessage('검색할수 없습니다.');
DM_CIMDB.AdoQry_Grid.EnableControls;
DM_CIMDB.AdoConn_CIMDB.RollBackTrans;
Gauge_Seek.Visible := False;
exit;
end;
end;
if not DM_CIMDB.AdoQry_Grid.eof then
DM_CIMDB.AdoQry_Grid.Next;
Gauge_Seek.Progress := (j * 100) div DM_CIMDB.AdoQry_Grid.RecordCount;
Application.ProcessMessages;
end;
> 지송합니다.
>
> 맨날 질문만 하궁... 내공이 약해서리...
>
> Ado를 쓰고있슴다. Query로 검색된 결과를 query_table로 복사하여
>
> 따로 관리하고 시픈뎅, 복사하는데 시간이 넘 걸립니다.
>
> 테이블 복사 소스는 아래와 같습니다.
>
> 1000개 이상 레코드를 복사할땐, 시간이 넘 걸립니다.
>
> 고수님들의 조언 부탁합니다.
>
> for j := 0 to DM_CIMDB.AdoQry_Grid.RecordCount - 1 do
> begin
> for i := 0 to (DM_CIMDB.AdoQry_Grid.FieldCount - 1) do
> begin
> DM_CIMDB.AdoTbl_QryDB.Append;
> DM_CIMDB.AdoTbl_QryDB.Edit;
> DM_CIMDB.AdoTbl_QryDB.Fields[i].Assign(DM_CIMDB.AdoQry_Grid.Fields[i]);
> try
> DM_CIMDB.AdoTbl_QryDB.Post;
> except
> Showmessage('검색할수 없습니다.');
> DM_CIMDB.AdoQry_Grid.EnableControls;
> DM_CIMDB.AdoConn_CIMDB.RollBackTrans;
> Gauge_Seek.Visible := False;
> exit;
> end;
> end;
> if not DM_CIMDB.AdoQry_Grid.eof then
> DM_CIMDB.AdoQry_Grid.Next;
> Gauge_Seek.Progress := (j * 100) div DM_CIMDB.AdoQry_Grid.RecordCount;
> Application.ProcessMessages;
> end;
>
>
검색된 결과를 특정 테이블로 밀어 넣을 거면 걍 간단한 쿼리 문으로도
해결 되는데 위와 같은 방법을 쓰는 특별한 이유가 있나요???
insert into COPY_TABLE select * from MASTER_TABLE WHERE ID > 10000
이렇게쿼리를 작성 하고 실행 시키면 힌큐에 해결 될수 있을 텐데여....