|
지영배 님이 쓰신 글 :
:
: Data Controls 탭의 컴포넌트를 사용하지 않고..
:
: 일반적인 비주얼 컴포넌트를 이용해서..
:
: 결과값들을 제가 필요한 형식으로 변형후에 출력해주고 싶거든요..
:
: 데이터셋 컴포넌트는 TADOQuery 를 사용하였구요..
:
: 쿼리는.. ADOQuery1->SQL->Add() 를 이용해서 보냈습니다.
:
: SELECT 문장을 사용하였다면 결과물은 어디에 저장되는지요?
데이터셋이라는 것은 간단히 생각하면
현재 레코드를 가리키는 포인터라고 생각하시면 됩니다.
(물론 정확히는 포인터가 아닙니다.
마치 STL의 iterator와 비슷하다고 생각하시면 됩니다.)
ListBox1에 쿼리 결과를 넣는 예제입니다.
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT 어쩌구 저쩌구");
ADOQuery1->Open();
ListBox1->Clear();
for (ADOQuery1->First(); !ADOQuery1->Eof; ADOQuery1->Next()) // 이 부분을 잘 보세요!
ListBox1->Items->Add(ADOQuery1->Fields[0]->AsString + ", " + ADOQuery1->Fields[1]->AsString);
그런데, 이렇게 하면
데이터셋의 처음부터 끝까지 모든 내용을 다 집어 넣기 때문에
상당한 시간과 메모리를 요구합니다.
TDBGrid등의 데이터 컨트롤을 사용하면,
화면에 표시되는 부분만을 그때 그때 표시하기 때문에 훨씬 적은 메모리와 시간을 쓰게 됩니다.
특별한 경우가 아니면 데이터 컨트롤을 꼭 쓰시는 것이 좋습니다.
|