|
안녕하세요.
DB에 너무 초보라... 이런것이 당연히 될것이라 생각했는데... 책을 뒤져봐도 잘 모르겠어서..
글을 올림니다.
지금 하나의 테이블에, filed 가 2개(칼럼 ), 인데 , row의 갯수가 좀 많습니다 (10000 개이상).
만개이상의 의 row를 저는 dbgrid 같은 곳에 뿌리지 않고... list box에 뿌리려고 합니다.
그런데, 방법을 모르겠기에... 다음과 같이 했습니다.
화면에.. SQLDataSet 1 개, DataSource 1 개 , SQLConnect 1개, DBEdit1, DBEdit2,
DataSource1 의 DataSet 에 SQLDataSet1,
DBEdit1 의 DataSource는 DataSource1
DBEdit1 의 Field = 선택된 첫번째 row
DBEdit2 의 DataSource는 DataSource1
DBEdit2 의 Field = 선택된 두번째 row
이렇게 한후
void __fastcall TForm1::Button4Click(TObject *Sender) // 특정 버튼이 눌리면
{
SQLDataSet1->Open();
SQLDataSet1->First();
if ( strcmp (DBEdit2->Text.c_str(), "") != 0 ) // 첫번째 선택된 것이 nil 이 아니면
{
while (1)
{
if ( !strcmp (DBEdit2->Text.c_str(), "") ) break; // 데이타의 마지막에 도착했으면
else
{
ListBox2->Items->Add( DBEdit2->Text + " " + DBEdit1.Text ); // DBEdit박스의 내용을 list 박스로 옮김
SQLDataSet1->Next(); //다음의 row로 이동
}
}
}
SQLDataSet1->Close();
}
이렇게 하여... Data는 정상적으로 정상적으로 ListBox에 append되는 것을 보았습니다. (물론 현재 10000 개이상은 아니지만, 약 100 여개정도로 테스트 하였습니다)
그런데.. 위의 방법처럼 하는 것이 효율적인 방법인지, 그것이 알고 싶습니다.
(데이타를 가져와서 임시로 저장하기 위해,DBEdit 2개를 사용했습니다 )
아니면, 더 효율적인 방법으로 하기 위해서는 다른 방법으로는 어떤 것이 있는지요?
(임시 저장소 DBEdit1,DBEdit2를 없애고, 바로 Listbox로 들어가게 하는 방법은 있는지요?)
조언좀 부탁드림니다.
그럼 수고하세요.
|