Q&A

  • MS Access에서 입력속도 관련입니다
[1].dbf 로된 자료를 읽어서 access에 insert하는데 시간이 15분정도
      걸리네요.(데이타 건수는 약 5,000건 정도 입니다)
      넘 오래걸리는건 아닌지 알고싶습니다.

작업방법

dbf 자료는 TTable 로 open 한 상태에서 Access에는 TQuery로 insert 함

[2]. dbf 를 dbgrid 에 뿌리면 금방나오는데 Access로 된 자료는 좀 기다려야
      나옴니다. 둘다 TTable를 사용했습니다
1  COMMENTS
  • Profile
    착한천사 2004.11.25 02:05
    착한천사 김경록입니다..
    흠.. 일단 질문 내용을 보면, 빠져 있는게 있어서..
    그 내용이 궁금하군요...

    첫째, Access에 Index 또는 primary key가 생성되어져 있다면,
    index 혹은 primary key를 disable 혹은 drop 하시길 권합니다..

    왜냐하면, 1건 insert시마다, index 혹은 primary key를 생성하기 때문이죠..
    또한, Primary key가 존재한다면, constraint를 check할 것이기 때문이죠..

    둘째, 한방 SQL로 insert를 하시길 권합니다..

    예)
    insert into 'ACS:테이블명'
    select 컬럼1, 컬럼2 ...  컬럼n
    from 'DBF:테이블명'

    여기서, 'ACS:테이블명' 이라함은 이종Query를 delphi에서 사용할때
    사용하는 것인데..
    ACS는 MDB와 연결된 database컴포넌트의 databasename 속성이며
    테이블명은 MDB에서 사용되는 table명을 말합니다.
    같은 방법으로,
    'DBF:테이블명"도
    dbf와 연결된 Database컴포넌트의 databasename 속성,
    테이블명은 dbf에서 사용되는 테이블명을 말합니다..

    다시말해서, MDB,DBF와 각각 연결되는 Database 컴포넌트 2개가
    필요하며, TQuery 컴포넌트 1개가 필요합니다..
    TQuery의 Strings 속성에 위의 Insert문을 넣으면 될 것이라 생각됩니다..

    한방 SQL로 만드시더라도,
    어쨌든, Index 혹은  Primary key는 disable 또는 drop 시킨 후
    data를 insert하고 Enable 혹은 Primary key를 추가시키기 바랍니다..

    예) alter table 테이블명 add constraint 제약명 primary key(컬럼1,컬럼2)

    여기서, 제약명이란은
    예를 들어, pk_code 같은 명칭을 의미합니다..
    흔히, pk로 시작하면, Primary key를 의미하죠
    idx로 시작하면, index를 의미하고,
    이것은 개발당시 개발자끼리 정하는 규칙이니..
    확정된 규칙은 아닙니다..

    이거 장황하게 설명되었군요..
    답이 되었는가 모르겠습니다..
    그럼..





    • 배정은
    • 2004.11.13 04:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 착한천사
      2004.11.25 02:05
      착한천사 김경록입니다.. 흠.. 일단 질문 내용을 보면, 빠져 있는게 있어서.. 그 내용이 궁금하군요... ...
    • 노명환
    • 2004.11.13 03:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 나그네
      2004.11.13 20:10
      이거 선언해 주시고요 type   TCustomDBGridCracker = class(TCustomDBGrid); DBGrid1DrawC...
    • 모영철
      2004.11.15 18:29
    • 석주현
      2004.11.13 02:24
      근데 전 맨날 좀 의야한게 포커스란게 Grid에서 보면 셀렉트 된거랑 같잖아요.. ^^ 그래서 그냥 if (...
    • 모영철
      2004.11.13 03:33
    • 델피언
    • 2004.11.13 00:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.11.13 02:37
      음 버젼이 틀려서 좀 그런데요.. PrepareReport 를 해주고 프린트 해야지 되는걸로 알고 있습니다. ^^
    • 델피언
      2004.11.13 17:51
      frxreport1.preparereport(true); frxreport1.print; 하니 되네요 감사합니다.
    • 석주현
      2004.11.13 03:01
      이렇게 해보니 잘되네요.. ^^ ////////////////////////////// procedure TForm1.QRPreview1MouseWheel...
    • 서기원
      2004.11.12 23:40
      퀵리포트 컴포넌트 중에 QRPreview라고 있던데 그거 사용하시면 되지 않을까요? 즐푸하세요~
    • 노명환
      2004.11.12 23:50
      당연히 프리뷰컴퍼넌트를 사용해서 했습니다. 그런데 제가 하니까 Priview폼이 떠 버려서 그런건데요.. ...
    • 정정봉
      2004.11.12 23:32
      DBGridEh 컴포넌트를 쓰시면 해결될것 같네요. 예전에 자료실에서 다운받았는데 지금도 있는지는....
    • 김준연
    • 2004.11.12 22:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2004.11.12 23:34
      그러면 레코드를 이용하세요... TYPE   TTag= Record     id &nb...
    • 박찬
    • 2004.11.12 18:46
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 손광현
      2004.11.12 19:13
    • 박찬
      2004.11.12 19:22
    • 손광현
      2004.11.12 19:44
    • 박찬
      2004.11.12 19:49
    • 손광현
      2004.11.12 19:51
    • 박찬
      2004.11.12 21:34
    • 황하성
    • 2004.11.12 18:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.11.12 19:13
      뭐 이런 식으로하면 됩니다.. ^^ ///////////// procedure TForm2.Button1Click(Sender: TObject); ...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.11.12 18:54
      작성 하신 대로 해서 버그를 잡으면요 for i := MIN to MAX - 1  do .... 하면 ...
    • 황하성
      2004.11.12 19:00
      while not Table.Eof도 써봤는데... ^^; 그것도 무한루프로 빠지는지 동작을 안하더라구요.
    • 박원용
    • 2004.11.12 17:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 오익환
      2004.11.12 19:07
      TObjectPrinter설치에 무슨 문제가 있는지 알려주시면 도와드릴 수 있을 것 같은데요.
    • 박원용
      2004.11.12 19:34
      objectprinterv7.pas 파일이 없다면서 에러가 납니다. ----------------
    • 오익환
      2004.11.12 22:24
      Component는 File속에 있는 RegOPrinter.exe로 설치 하여야 합니다. 설치후 TObjectPrinter자료실에 ...
    • 장영진
    • 2004.11.12 09:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2004.11.12 19:50
      네 할수 있습니다. 포인터를 쓰시는것도 괜찮을거 같은데요.. 전에 작업하다 이리저리 걸리는게 많아...
    • yskwon
    • 2004.11.12 02:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2004.11.12 02:36
      안녕하세요 하얀까마귀입니다. 어찌 답변을 하라시는건지. ㅠㅠ 난감하군요. ^^ 일단 안되니까. 그...
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.11.15 20:03
      코딩에 이상이 없습니다...로직상으로는 근데 QuickReport 자체가 생성이 안되여... 왜 그런지... ...
    • 하얀까마귀
      2004.11.17 11:07
      안녕하세요 하얀까마귀 입니다. ㅠㅠ  그냥 퀵이 생성이 안되다고만 하시면 원인을 알수가 없...
    • 석주현
      2004.11.17 17:45
      퀵리포트는 다른 폼처럼 보여지는게 아니라 디자인 타임에는 보이다가 런타임시에는 프린트나 아니면 ...
    • 강신구
    • 2004.11.12 01:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 뚜까
      2004.11.12 01:41
      예전에 받아논건데 적당한거 골라서 쓰세요.... 엑셀 사용시 셀들을 복잡하게 제어해야할 때 필요한...
    • 강신구
      2004.11.12 02:06
      답변에 감사드립니다.. 그런데.. 셀형식을 텍스트로 지정하는 방법에 대해서는 없군요.. 아쉽습니다..
    • 작은호롱
      2004.11.12 02:26
      소스중에서 다음부분이 텍스트형식으로 지정하는 부분합니다. ===> Format := '@'; 즐프하세요...
    • 김성현
    • 2004.11.11 22:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송기원
      2004.11.11 23:34
      ISAPI로 제작하시면 가능하고도 남습니다. DB연결은 ADO로 처리하시면 별도의 세션문제걱정은 안 하셔도 ...
    • 김종곤
    • 2004.11.11 22:30
    • 0 COMMENTS
    • /
    • 0 LIKES