Q&A

  • [re] [질문]ADOQuery 데이터를 통째로 Memo 컴포넌트로 복사하는 방법?

>ADOQuery로 "select company from MEMBER" 처럼 불러온 뒤
>메모컴포넌트인 memCompany에 한꺼번에 붙여넣는 방법이 없을까요?
>자료가 60만개 정도되는데 아래처럼 하니까 시간이 너무 오래걸려서......
>고수분들 도움을 주시면 정말 감사하겠습니다.
>
>//기존방법
>while not qryCompany.Eof do
>begin
>     memCompany.Lines.Add(qryCompany.FieldByName('company').AsString);
>     qryCompany.Next;
>end;
>=끝=

s := TStringList.Create;
s.Clear;
while not qryCompany.Eof do
begin
     s.Add(qryCompany.FieldByName('company').AsString);
     qryCompany.Next;
end;
memCompany.Text := s.Text;
s.Free;

이런식으로 바꾸시면 됍니다.
데이타가 들어갈때마다 Memo Control를 Redraw하기 때문에 상당한 시간을 사용하는 겁니다.
1  COMMENTS
  • Profile
    통통만두 2010.11.07 10:52
    흠.. 그냥 간단하게..

    try
    Memo.Lines.BeginUpdate;
    finally
    Memo.Lines.EndUpdate;
    end;

    정희돈님께서 답변 달아주신듯이 상당부분의 컴포넌트들이 데이터를 넣을때마다 다시 그립니다.
    그 다시 그리는것을 하지말라는 의미에서 BeginUpdate로 시작해서 EndUpdate할 때 그리는거죠.... 라고 알고 있습니다.

    • phono
      2010.06.20 20:08
      Lines.String.text 로 해보셨나요?
    • 정희돈
    • 2010.06.29 22:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 통통만두
      2010.11.07 10:52
      흠.. 그냥 간단하게.. try Memo.Lines.BeginUpdate; finally Memo.Lines.EndUpdate; end; ...
    • 델코이
    • 2010.06.18 20:59
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.19 02:16
      그런 방법이 있을리가 있나요... 포기하세요.
    • 땅콩맨
      2010.06.19 06:17
      컴퓨터 학문중 '역공학(Reverse Engineering)' 이라는 것이 있습니다. 역공학을 공부하기 위해서는 Hex ...
    • 폐기처분中
      2010.06.24 22:49
      리버스 엔지니어링을 하면 어느 정도의 알고리즘은 뽑아 낼 수 있겠지만... 바이너리 파일을 완벽히 코...
    • 이규하
      2010.06.25 12:53
      혹시나 하고 찾아 봤는데. 아래의 싸이트를 참고 해 보세요. http://delphi.about.com/od/devutili...
    • 땅콩맨
      2010.07.04 04:53
      흠... 원본소스를 재생하는것은 있을수 없다라고 적혀있네요.. 폐기처분中님이 말씀하신 것처럼 처음부...
    • 최용일
      2010.06.17 21:14
      TStringGrid, TDBGrid
    • 이승규
      2010.06.17 23:56
      음~~ 어디서 구할수 있나요 ^^ 7.0버젼인뎅
    • 살며배우며
      2010.06.23 08:20
      TStringGrid은 Additional에 , TDBGrid는 DataControl 텝에 있습니다.
    • 아폴론
    • 2010.06.18 00:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 사우리
    • 2010.06.18 00:05
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이용벽
    • 2010.06.16 22:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.16 23:07
      다른것은 모르겠구 송신 무한루프가 두번째가 안되는 것은 정상적인 동작인데요... IsCancel이 첫번째 ...
    • 최용일
      2010.06.16 23:10
      첫번째 3-4초 후에 응답을 받는 부분은 실제로 서버에서 늦게 응답을 하는가 아님 클라이언트에서 늦게 ...
    • 이용벽
      2010.06.17 00:11
      감사합니다. 두번째 문제는 그런 원인이 있었군요. 해결되었습니다. 첫번째 문제는 주신 힌트를 기반...
    • 아폴론
    • 2010.06.16 20:22
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.16 21:27
      BDE대신에 ODBC나 ADO를 쓰면 크게 안 고치셔도 될 것 같은데요...
    • phono
      2010.06.16 22:20
      용일님 의견에 덧 붙히자면... dbExpress는 단방향 데이타 셋 입니다. 즉 DataSet을 스크롤시 next...
    • 이용벽
      2010.06.16 22:47
      InstallAware를 쓰려다가 BDE에 걸려서 안되고 있는데 ODBC나 ADO를 쓰면 InstallAware에서 문제없나요?
    • 최용일
      2010.06.17 04:32
      ODBC, ADO 다 지원하는 것으로 알고 있는데요...
    • 가을바람
      2010.06.19 23:28
      문득 옛날 회사에서 bde안쓰고 dbExpress썼다고 犬ㅈㄹ하던 한 인간이 생각나네요.. ㅎㅎ
    • 김민수
    • 2010.06.14 22:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.14 23:42
      StringGrid1.Row := StringGrid1.Row + 1; StringGrid1.Cells[StringGrid1.Row, 0] := '추가된 첫번째 ...
    • 최용일
      2010.06.14 21:37
      FindFirst/FindNext/FindClose함수로 폴더의 파일 목록을 읽어와서 그 수많큼 루프를 돌려서 업로드하는 ...
    • 김민수
      2010.06.14 22:08
      힌트 감사합니다! 큰 도움이 되었습니다.
    • 초빼이
    • 2010.06.14 06:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.06.14 10:06
      TFrm_Schedule생성할 때 Owner로 Self 즉, TFrm_Preview를 넣어주셨으니까 특정버튼의 OnClick이벤트에서...
    • 아폴론
    • 2010.06.12 23:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • phono
      2010.06.14 20:16
      일단 BDE는 64bit 지원이 안되는 것으로 알고 있구요.. 그래서 저는 BDE 문제 때문에 5~6년 전 부터 ...
    • 박홍재
      2010.06.15 13:05
      Del 2005를 사용하고 있고 예전 Del 7 인스톨러에서 만든 Setup Program을 돌려서 64bit 7에 설치를 했습...
    • 홍성락
      2010.06.12 00:48
      어! 이런게 있었군요. 주의해야겠네요. 그런데 일반적으로 화면 갭쳐시 PaintTo등의 단순한 함수보다도 ...
    • 미스터몽키
      2010.06.15 05:37
      이런 쉬운 방법이 있었군요 홍성락님 정말 감사합니다.
    • 김현철
    • 2010.06.10 19:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이윤도
      2010.06.10 23:28
      StrToIntDef 이나 StrToFloatDef 를 참조하세요!! ex) StrToIntDef(str, 0) <- Str이 정상적인 숫자...
    • 박홍재
      2010.06.09 12:53
      일단 질문이 조금 이해가 되지 않아서.. 이미 포스시스템에서 입장객을 Check 하고 있다면 이미 Barcode...
    • 이규하
      2010.06.09 16:34
      바코드 리더를 RS-232C 타입으로 하시구요 ... RS-232C Component 하나 올리시고 ... 데이터 들어 올...
    • 최선호
      2010.06.09 22:36
      두분 관심 가져 주셔서 감사드립니다. 이규하님 말씀하신 데로 한번 해봐야 겠습니다.. 그리고 박홍재...
    • 박홍재
      2010.06.10 08:51
      RS-232 바코드 리더의 경우 프로그램에서 신호를 주어야 읽을 수 있습니다. 따라서 실행하는 프로그램에...
    • 박홍재
      2010.06.10 08:56
      Scanner의 메뉴얼을 살펴 보시면 Data을 읽을때 앞이니 뒤쪽에 지정하는 문자를 Default로 출력되도록 만...
    • 최선호
      2010.06.11 00:03
      친절하고 자세한 설명 감사드립니다..