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
[74606] Re:[질문] 데이타베이스 접근
빌더(TWx) [builder] 3517 읽음    2017-10-03 00:59
하안인 님이 쓰신 글 :
:
: 프로세스를 200개 만들어서 각자 다른 일을 처리하도록 하려고 합니다.
:
: 그런데 200개의 프로세스에서 하나의 DB에 연결을 해서 정보를 가져오는데
:
: 한 프로세스에서 가져간 정보는 다른 곳에서는 가져가지 못하도록 해야하는데
:
: 데이타베이스는 mysql isam 으로 트랙잭션을 쓰지 못하는 데이타베이스 인경우에는
:
: 어떻게 처리해야 하는지요.
:
: 테이블에 필드를 만들어서 가져갔는지 안가져갔는지는 트랙잭션을 쓸수 가 없어서
:
: 동시에 접근해서 쓸 수 없을 것 같구,,
:
: 데이타 베이스를 분배해 주는 프로세스를 하나 만들어야 하는것인지...
:
: 아님 다른 방법이 있는지 자문을 구합니다.
:
: 그럼,수고하세요.




답변:


트랜젝션을 지원하지 않는다는 것은...
데이타베이스 백엔드 엔진이 세부적으로 쪼개서 Lock을 거는 게 아니고, 테이블 전체를 Lock을 거는
단순한 방법으로 구현되어 있다는 거잖아요.

어떤 특정 필드를 0 으로 해놓고..

특정필드가  0 이면 데이타 셋을 리턴하면서 필드를 1로 바꾸고
1일 때는 데이타 셋을 리턴하지 않도록...
Stored Procedure 를 정의해 주면 되겠네요.

데이타베이스 백엔드 엔진이 트랜젝션을 지원하지 않는 경우라도...
Stored Procedure는 세션의 수와 상관없이 Table Lock이 걸리면서 Atomic 조건으로 실행되니.


+ -

관련 글 리스트
74602 [질문] 데이타베이스 접근 하안인 3462 2017/09/28
74606     Re:[질문] 데이타베이스 접근 빌더(TWx) 3517 2017/10/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.