Q&A

  • 특정 레코드로 이동하기

ADOQuery_sql.First;
ADOQuery_Sql.next;

이런 방법 말구요..
10번째로 바로 가는 법은 없나요...

고수님 부탁 드려요...
5  COMMENTS
  • Profile
    최영근 2002.02.06 05:39
    Locate 명령도 괜찮습니다.
    Query1.locate('FieldName', 필드값, [loPartialKey]);
    //  ('키필드이름', 키필드값, Locate Option)
          

  • Profile
    이화 2002.02.06 08:49
    답글 감사 합니다..
    앞으로 많은 조언 부탁 드릴께요... ㅋㅋㅋ

  • Profile
    장지용 2002.02.06 03:28
    MoveBy : function(Distance: Integer): Integer;
    이걸 사용하심 안 될까요.

  • Profile
    이화 2002.02.06 08:51
    델파이를 공부 하고 있는데..

    아래와 같은 컴포넌트 레퍼런스 가이드 없나요..

    제가 보기에 시중에 나와 있는 것들은 너무 단순한것만 나와 있어서..

    좋은 사이트나 책있으면 소개 시켜 주세요..

    답변은 넘 고마웠습니다..

    하나 궁금한것이  제가 처리 하고자 하는 것은 17,000 건을 처리해와서.
    listView에 뿌렸거든요... listView에는 간단한 신상만 보여 주고

    해당 사람은 클릭 하면 상세 정보(쿼리결과문 모두)를 보여 주려구요..
    근데 앞쪽에 있는 사람은결과가 빨리 나오고...

    17,000번째는 몇초가 거리는데... 빨리 나오는 방법은 업나요...
    listView에서 뿌릴때 AdoQuery_sql.next 하면서 순차적인 값을
    리스트에 뿌리므로 리스트클릭시 순차적인 값만 가지고 와
    ADOQuery_SQL.FieldByName('pid').AsString 이런식으로 읽을려고 하거운요..

    메모리로 테스트는 하지 않았지만..
    리스테 뿌리면서... 구조체(레코드)에 넣는 방법은 어떨까요..
    리스트에 뿌리면 메모리에도 저장 해야 하니까.. 시간이 더 걸릴꺼라
    생각 해서....
    ADOQuery_sql에 있는 것을 그냥 그대로(이것도 하나의 메모리)사용 하려고 했던 거니까요....   레코드형에 넣는 시간이 많이 걸리지 않으며...

    배열형으로 만들면.... listView에서 클릭시 순차값을 읽어 바로 보여 주면 되지만...

    moveby는

    ADOQuery_sql.First.
    for i:=1 to ListView.Selected.Index do  
        ADoQuery_sql.next;
    한것과 시간이 별로 차이 나지 않는것 같아서요....

    레코드형을 만들면... 예를 들어 100,000건이 넘으면...
    컴퓨터거 죽지 않을까.. 생각도 되는데...

    그럼 갯수가 정해 지지 않았으니 동적 생성을 해야 겠지요....(포인터형)

    다시 한번 질문 드립니다...



  • Profile
    최용일 2002.02.06 10:02
    안녕하세요. 최용일입니다.

    17000개 정도면 리스트뷰에 그릴때 락을 건다고 해도 데이터를 리스트뷰에 표시하고 삭제하는 것은 느릴겁니다...

    리스트뷰에 들어가는 데이터들이 만개 이상이라면 가상모드로 사용하시는 것이 좋을듯합니다. 이것은 님께서 생각하는 방식과 거의 비슷한 방법입니다.

    가상모드의 리스트뷰는 데이터가 많으면 많을수록 비교가 안될정도로 빠릅니다...

    가상모드 리스트뷰는 델파이 Demo폴더의 VirtualListView란 폴더에 예제가 있습니다...

    가상모드의 리스트뷰를 조금 설명하자면...

    리스트뷰의 데이터를 리스트뷰가 관리하는 것이 아니라 프로그래머가 관리를 하는거죠... 그리고 리스트뷰가 데이터가 필요하다고 요청할 때 프로그래머가 데이터를 넘겨주는 방식입니다...

    예제 프로그램 분석하실때 유의해서 보실점은 딱 2가지입니다.

    하나는 리스트뷰의 OwnerData속성을 True로 해야 한다는 것과 또하나는 OnData이벤트에서 리스트뷰가 요구하는 데이터를 셋팅하는것입니다...

    가상모드 리스트뷰에 필요한 것은 위 2가지 뿐입니다...

    잘 분석하셔서 가상모드로 작성하시면 몇십만건도 순식간일겁니다...

    ^^ 항상 즐코하세요...

    • 장지용
      2002.02.06 22:59
      function DayOfWeek(Date: TDateTime): Integer; 일요일 = 1 월요일 = 2 . . .
    • 푸른하늘
      2002.02.07 23:37
      먼저 답변에 감사드립니다. ^^ 근데..DayOfWeek를 어떻게 사용하는가요? --; 이 함수를 이용해 월요일일...
    • 장지용
      2002.02.19 00:30
        case DayOfWeek(Now) of     1 : ShowMessage('일요일입니다.'); &nb...
    • 장명선
      2002.02.06 21:19
      DB의 날짜 및 요일을 가져오면 쉽게 해결할수 있을겁니다. 꼭 DB만이 아니고 시스템 요일을 가져와도 되겠...
    • 장지용
      2002.02.06 21:14
      "Query1.Next;" 로 바꾸면 안 되나요?
    • 장명선
      2002.02.06 21:07
      Next를 쓸때.....Query1.Next로 써보세요 제가 보기엔 그것이 문제인듯 싶네요 즐코하세요~~~
    • 강두헌
      2002.02.06 21:03
      이름이 좀 헷갈려서 정확한건지는 모르겠지만, Next; 를 Query1.Next; 로 바꾸시면 될거 같네요.. 도...
    • ssoya
    • 2002.02.06 20:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 보들레르
      2002.02.06 23:00
      님의 코드를 한글로 쓰면 이렇게 됩니다. if 조건 then //만약에 조건이맞으면 처리 else if 조건 then...
    • 강두헌
      2002.02.06 20:57
      먼저 조건에 맞는 경우를 실행하고 빠져 나갑니다. 이건 서점가서 아무 기본서적 꺼내들고 10분만 읽으면 ...
    • 김종석
    • 2002.02.06 20:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.02.06 22:15
      안녕하세요. 최용일입니다. test가 MSG의 포인터네요... 그냥 형변환하세요... VC++ 처럼... var &n...
    • 이규황
    • 2002.02.06 20:34
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 장명선
      2002.02.06 21:03
    • Tk
      2002.02.06 21:10
    • 이규황
      2002.02.06 21:09
    • 장지용
      2002.02.06 21:21
    • 장명선
      2002.02.06 21:23
    • 장지용
      2002.02.06 22:19
    • 이규황
      2002.02.06 21:29
    • 김정은
    • 2002.02.06 20:03
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2002.02.15 02:01
      답변이 될런지 모르겠지만, 일반적으로 SMTP 서버를 공개해 놓지 않습니다. 스패머의 좋은 표적이 때문입...
    • 신호
    • 2002.02.06 18:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.02.06 22:25
      안녕하세요. 최용일입니다. 그렇게 하실려면 그릴려구 하는 것들 모두를 다 객체화 해서 만드셔야 합니...
    • 서정길
      2002.02.06 18:47
      쩝... SQL.Add('values (:Tbl_PcName,:Tbl_UserName,:Tbl_LoginName,:Tbl_WorkGroup,:Tbl_MyIPAdress, '...
    • 조규춘
      2002.02.06 20:31
      찾으시는 답변이 되었으면 좋겠네요.. var   i, n: Integer;   fn: file; &...
    • 임광운
      2002.02.06 22:20
      답변 정말 감사드립니다. 어여 공부해서^^ 저도 다른분들과 많이 나누고 싶네요. 그럼 좋은 하루 되세요....
    • 이화
    • 2002.02.06 09:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.02.06 22:19
      아래에 답변해드렸는데......
    • 조성택
    • 2002.02.06 09:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김용덕
      2002.02.06 19:34
      안녕하세염~ 차이점은 바로 실행하는 주최죠~ Thread의 Execute에서 MyFunc를 호출하면 해당 Thread에...
    • 임현창
      2002.02.06 08:31
      QuickRep1.ShowProgress := False; 쩝...
    • 고예형
    • 2002.02.06 05:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2002.02.06 05:51
      Rowselect 옵션에 체크해두심 안되나여? 질문 내용이 이게 아닌가?..후다닥..=3=3
    • 정계훈
      2002.02.06 05:51
      안녕하세요. 아래와 같이 하심 선택된 ROW의 색깔을 바꿀수 있습니다. 그럼 즐거운 코딩이 되시길... ...
    • gudwhrla
      2002.02.06 05:35
      큰 데이타를 저장시에는 바운드를 사용하셔야 합니다. (:code, :vtext) Sql.add()에 직접 널수 있는 데이...
    • 성더기
      2002.02.06 05:50
      지송스럽게두 저장시에는 아무 문제가 없었슴다.. 데이터는 똑바로 저장이 되더군요.. 단지 쿼리를 날려...
    • gudwhrla
      2002.02.06 07:19
      로드시에 데이타를 변형해서  불러오니까  다 가져 오내여 select code , Convert...
    • 성더기
      2002.02.07 20:20
      그런 방법이 있었군요... 전 걍 타입을 몽땅 Text로 바꿨습니다. text로 사용을 하니깐 문제가 없더군욤....
    • 장지용
      2002.02.06 03:52
      "FindComponent" 라는 놈을 쓰면 될것 같습니다. for intLoop := 1 to 10 do   ...
    • 최용일
      2002.02.06 03:49
      안녕하세요. 최용일입니다. FindComponent메소드나 Controls배열을 이용하세요... procedure TForm1....
    • 장명선
      2002.02.06 02:55
      TLabel(Sender).Caption := '111' 이런씩으로 하면 값이 들어갑니다. 여러개를 동시에 하는것은 조금 ...
    • 이화
    • 2002.02.06 02:43
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최영근
      2002.02.06 05:39
      Locate 명령도 괜찮습니다. Query1.locate('FieldName', 필드값, [loPartialKey]); //  ('키...
    • 이화
      2002.02.06 08:49
      답글 감사 합니다.. 앞으로 많은 조언 부탁 드릴께요... ㅋㅋㅋ
    • 장지용
      2002.02.06 03:28
      MoveBy : function(Distance: Integer): Integer; 이걸 사용하심 안 될까요.
    • 이화
      2002.02.06 08:51
      델파이를 공부 하고 있는데.. 아래와 같은 컴포넌트 레퍼런스 가이드 없나요.. 제가 보기에 시중에 ...
    • 최용일
      2002.02.06 10:02
      안녕하세요. 최용일입니다. 17000개 정도면 리스트뷰에 그릴때 락을 건다고 해도 데이터를 리스트뷰에 ...
    • gudwhrla
      2002.02.06 02:35
      Name := Listview1.Items[0].SubItems[0]; Age :=Listview1.Items[0].SubItems[1];
    • 김진선
    • 2002.02.06 02:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2002.02.06 15:31
      아래와 같은 방법으로 하셔도 될거 같군요.. function SearchAndReplace(sSrc, sLookFor, sReplac...
    • 장명선
      2002.02.06 02:33
      번거러워도 숫자로 변환하여 하시는게 좋을듯 싶네요