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

델파이 Q&A
Delphi Programming Q&A
[11857] Re:다수의 파일데이타를 쓰레드를 통해서 DB insert 할때 오류~
civilian [civilian] 1730 읽음    2008-03-24 16:39
여러개의 스레드를 사용할 때에는 각 스레드간 동기화 작업을 잘 해야 합니다.

질문한 내용에 있는 코드만 봐서는 대답을 해드리기가 곤란하네요.

m델파이m 님이 쓰신 글 :
: Unit1
:
: use Unit2, Unit3
: var
: FilenameThread : TFilenameThread
: DbUpdateThread :  TDbUpdateThread
:
: Try
:
: for R=0 to FileListBox1.selCount -1 do
: begin
:
:   {#1.스트링그리드에 불러오기 쓰레드}
:    FilenameThread.Create(false);
:  
:   {#2.스트링그리드에 올린 데이타를 DB로 올리는 업데이트 쓰레드}
:   DbUpdateThread.Create(false);
:
:  end;
:
: Finally
:
:
: showmessage(intToStr(R) + ' 개의 파일을 업데이트했습니다.완료')
:
: end;
:
: ---------------------------------------------------------------
: Unit 2  {파일내용을 스트링그리드로 불러오기 쓰레드}
: for i=1 to 100 do
: begin
:  스트링그리드에 넣기
: end
:
: ---------------------------------------------------------------
: Unit 3  {스트링그리드에 올린 데이타를 DB로 올리는 업데이트 쓰레드}
: for i=1 to StringGrid1.recordCount-1 do
: begin
:  DB에 넣기
: end
:
: 대충 소스코드는 위와 같은 구조입니다.
: 즉, 파일이 10개 있을때
:  1) 1번 파일을 불러서
:  2) 스트링그리드에 올리고
:  3) 스트링그리드에 올린 데이타를 DB에 인서트
:  4) 다시 2번 파일을 불러서 2),3)을 반복
: 이렇게 하려고 합니다.
:
: 그런데...위에 처럼 쓰레드로 구현해서 실행해보니 문제가 발생합니다.
: 실행해보니 실제는 1번파일부터 10번파일까지
: 2)단계를 계속 올리더군요. 즉 2)단계를 10번하고
: 그리고 3)단계를 또 10번하더군요..
:
: 제가 원하는건 1번파일을 스트링그리드에 올리고 그 데이타를 DB로 올리고
: 그리고 2번파일을 스트링그리드에 올리고 그 데이타를  DB로 올리고 해서
: ..
: 10번 파일까지 스트링으로 올리고 DB로 올리고
: 이런식으로 하려고 합니다.
:
: 그런데 실제보니까 위에서 처럼 1~10번파일을 스트링그리드에 쭉 올리고
: 그거 끝나면 최종적으로 스트링그리드에 올라간 데이타를 10번에 걸쳐서
: DB에 올리더군요...즉 동일한 데이타를 10번 인서트하는겁니다.
:
: 그리고 쓰레드는 finally까지 모두 마치고 쓰레드를 실행하더군요...
: 그러니까 쓰레드가 시작도 안했는데 완료메시지를 보인후에
: 쓰레드가 시작하더군요...제가 델파이 한지 얼마 안된지라
: 책보면서 쓰레드를 적용해서 해볼려구 하는데 이런
: 어려움이 있네요...
: 고수님들의 가르침을 바랍니다.
: 수고하세요.

+ -

관련 글 리스트
11852 다수의 파일데이타를 쓰레드를 통해서 DB insert 할때 오류~ m델파이m 1807 2008/03/22
11857     Re:다수의 파일데이타를 쓰레드를 통해서 DB insert 할때 오류~ civilian 1730 2008/03/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.