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
[14782] Re:[질문]여러 Thread가 동시에 MDB를 access할때....
패패루 [peperu] 2177 읽음    2002-01-21 14:50
커넥션을 쓰레드가 뜰 때 마다 매 번 만드는 것은 한마디루
'미친짓'입니다.
메모리 낭비도 엄청나고, 님이 말씀하신 것과 같은 문제들도 발생하죠.
커넥션은 메인 폼이나 메인 데이터 모듈에 하나만 만드세요.
그리고, 쓰레드에서 생성하는 TDataSet계열(TADOQuery등)에서는 이 커넥
션을 이용하면 됩니다.

최익수 님이 쓰신 글 :
: 안녕하세요?.....꾸벅....^^
: 오우....정말 오래간만에 와 보네요...
: 근데 확 달라졌네요?
: 순간 잘못들어 왔는줄 알고 나갔다가 다시 들어왔어요....^^
:
: 간만에 이렇게 들어와서 또 이상한 질문만...올리네요...에구...죄송....^^
: 다름이 아니라....하나의 프로그램에서 여러개의 Thread가 생성되서는
: mdb의 하나의 table을 읽고 쓰는데 이걸 ADO로 할때에 대해서 여쭤볼까해요....
: 그니까....더 자세히 얘기하면...
: 쓰레드가 한번 생길때 마다 하나의 TADOConnection과 TADOQuery가 생깁니다.
: 그래서 각 쓰레드는 하나의 테이블 (예로, TestTable)을 읽고 쓰는데...
: 이때, 바로 쓸때...그니까...Insert를 할때 문제가 생기더라고요....
: 에러가 발생하면서 프로그램이 멈춥니다....에러메시지가 뭐라고 나냐 하면....
:    "현재 잠겨 있으므로 업데이트할 수 없습니다"
: 라고 뜹니다....아무래도 데드락이 걸리는거 같은데....
: 물론, 어떠한 Syncronize변수도 사용하지 않았읍니다...글구..
: 일부러 transaction도 걸지 않았거든요...(insert는 맨 마지막에 한번 일어나니까...
: 글구, insert문이나 update문 하나만 수행하면 transaction을 걸 필요 없는거 아닌가요?
: 알아서 처리해 주는거 아닌가요?)
: 하여튼 그래서 mdb화일있는 폴더를 보면..."Access.LockFile.9"화일이 생겨 잇어요...
: 왜 이런일이 생기는거죠? mdb는 한프로그램에서 하나의 session만 열수 있나요?
: 아니면 쓰레드에서 ADO를 쓰려면 다른 뭔가를 해줘야 하나요?
:
: 고수님들 부탁합니다....꾸벅....
: 그럼, 수고들 하시고...안녕....
:

+ -

관련 글 리스트
14756 [질문]여러 Thread가 동시에 MDB를 access할때.... 최익수 2255 2002/01/20
14782     Re:[질문]여러 Thread가 동시에 MDB를 access할때.... 패패루 2177 2002/01/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.