C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[29481] Re:Re:[질문] DB에서 쿼리된 내용을 Listbox에 뿌리려고 합니다.
초록물고기 [rambo] 849 읽음    2004-04-23 12:03
답변 매우 감사합니다.
잘 됩니다.
다시 한번 감사드림니다.

박지훈.임프 님이 쓰신 글 :
: DBEdit 두개를 쓰신 것이 데이터셋의 결과를 단순히 읽어오기 위한 것이군요. DBEdit에 표시할 필요는 없어
: 보이는데.. 그렇다면 만해님의 말씀대로 FieldByName을 써서 해당 필드의 값을 읽어오는 편이 훨씬 더 빠르죠.
:
: 그리고 데이터의 마지막에 도착했는지를 검사할 때는 데이터셋의 Eof 속성으로 검사합니다.
:
: void __fastcall TForm1::Button4Click(TObject *Sender)
: {
:     SQLDataSet1->Open();
:     while (!SQLDataSet1->Eof)
:     {
:         ListBox2->Items->Add(SQLDataSet1->FieldByName("첫번째필드이름")->AsString
:           + " " + SQLDataSet1->FieldByName("두번째필드이름")->AsString);
:         SQLDataSet1->Next();
:     }
:      SQLDataSet1->Close();
: }
:
:
: 초록물고기 님이 쓰신 글 :
: : 안녕하세요.
: : 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로 들어가게 하는 방법은 있는지요?)
: :
: : 조언좀  부탁드림니다.
: : 그럼 수고하세요.
: :
: :

+ -

관련 글 리스트
29467 [질문] DB에서 쿼리된 내용을 Listbox에 뿌리려고 합니다. 초록물고기 1265 2004/04/22
34909     Re:[질문] DB에서 쿼리된 내용을 Listbox에 뿌리려고 합니다. 강재호.만해 803 2004/04/22
29473     Re:[질문] DB에서 쿼리된 내용을 Listbox에 뿌리려고 합니다. 박지훈.임프 1198 2004/04/23
29481         Re:Re:[질문] DB에서 쿼리된 내용을 Listbox에 뿌리려고 합니다. 초록물고기 849 2004/04/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.