|
최진호 님이 쓰신 글 :
: 안녕하세요..먼저 이글을 읽어 주신 분에게 감사를 드립니다
:
: 지금 제가 할려는 작업은 DB에서 데이터를 내려 받으려고 합니다.
:
: record 는 2만개 정도 컬럼은 4개 정도 입니다
:
: 두번째 "음식" 컬럼전체만을 내려 받을려고 합니다.
:
: TADOQuery *AppQuery = new TADOQuery(this);
: DataSource* AppDsource = new TDataSource(NULL);
:
: DM->DBcon->LoginPrompt =false;
: AppQuery->Connection=DM->DBcon;
: AppDsource->DataSet = AppQuery;
: TStringList *sv =new TStringList();
: AnsiString ss;
:
: AppQuery->Close();
: AppQuery->SQL->Clear();
: AppQuery->SQL->Add("select * from 모든품목");
: AppQuery->Open();
: //-------------------------------------------------------
: while(!AppDsource->DataSet->Eof)
: {
: ss=AppDsource->DataSet->FieldByName("음식")->AsString;
: sv->Add(ss);
: AppDsource->DataSet->Next();
: }
: //----------------------------------------------------------
: sv->SaveToFile("c:\\음식.txt");
:
: delete AppQuery;
: delete AppDsource;
: delete sv;
: ShowMessage("작업완료");
:
: 그런데 문제는 하나의 필드만 내려 받는데 시간이 무지 많이 걸려던데..원래 이런가요..아님.. 다른방법이 있는지요?
: MSSQL 에서는 select * from 모든 품목 하면 1초도 안걸리던데..이걸 작업하면..7초 정도 걸립니다..
:
: 아무래도 이상해서 질문을 드립니다. (참고로 전체를 TStringList 로 읽어서 해당 부분만 빼는데도 1초 미만입니다)
: 그럼 많은 답변 부탁드립니다 !!!!
하나의 필드만 가져오는게 아니고 "모든품목" 테이블 전체의 내용을 가져오고 있군요.
AppQuery->SQL->Add("select * from 모든품목");
위를
AppQuery->SQL->Add("select 음식 from 모든품목");
처럼 하셔야 하나의 필드 내용만 디비서버에서 로컬 서버로 다운 받게 됩니다.
|