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

FireBird Q&A
[472] Re:[질문] 자문오답(?)
박한수 [] 2200 읽음    2002-10-15 15:55
query를 하기 전에요 요렇게 해주니까
  Dm.TrCntr.Active := False;
  Dm.QrCntrO.Active := False;
  Dm.TrCntr.Active := True;
  Dm.QrCntrO.Active := True;

update/commit 된 것이 인식이 되어 query 문에서 send_date is null 에서 retrieve 되지 않습니다..
즉, transcation을 내렸다가 다시올리니까  이전에 update 된 것이 인식이 됩니다.
이 것이 편법 같기는 한데요..
만약 이 편법이 편법이 아니라면
인터베이스는 좀  짜증 db 같습니다. 흑흑흑..

고수님들의 조언 부탁드립니다.

박한수 올림



박한수 님이 쓰신 글 :
: 안녕하십니까..
: 또 문의 드리게 되었습니다..
:
: 서로다른 혹은 서로 같은 table에 대하여  동시에 db 작업이 있습니다.
: 이 경우 각각의 모듈에 대하여 transaction을 따로 주면 되는지요
: 아니면 구지 이렇게 할 필요가 없는지요..
:
:
: (그리고 앞에 '하안인' 님께서도 관련된 질문을 해 주셨던데요..)
: 제가  update send_date = now  이런 식으로 update 하고
: (QrSlaedataExec 이용)  TrSaleData  을 commit 까지 때렸으나,
: 다시 TrSaleDataOpen에서 select ... where send_date is null
: 해보면(QrSaleDataOpen이용)
: 위에서 QrSaleDataExec로 update 하고 TrSaleData를 commit 때렸음에도
: 불구하고, send_date가 null로 인식 되어 retrive 되어 집니다.
:
: 물론 ibconsole에서 select 문 때려 보면
: send_date 가 정상적으로 update 된 것으로 나옵니다...
:
: 도대체 어떻게 된 것인지요...
: 흑흑흑
:
: 고수님들의 조언 부탁드립니다.
:
: 박한수 올림
:
:
: 1 : ---------------------------------------------- : sale_data : ---------------------------------------------- : 가맹점 번호 : card_no : sale_date : send_date 센터로 전송후 ack message받은 날자 : 등등등 : ---------------------------------------------- : : ---------------------------------------------- : black_list : ---------------------------------------------- : card no (black list) : ---------------------------------------------- : 2 <주요 업무> : 1. 단말기로부터 올라온 매출 데이터를 real time으로 saledata에 insert 시킨다. : 2. timer가 돌면서 select 문 (QrSaleDataOpen 이용) 을 돌려서 : saledata의 자료 중, send_date = null 을 골라 packet에 싫어 : center로 소켓통신으로 전송한다. : 3. center로부터 정상적인 ack message가 오면, 방금 보내었던 자료의 send_date를 update한다. : (QrSlaedataExec) : 4. 또 다른 socket을 이용하여 center로 부터 사용불가 카드 번호를 받아 select 문을 통하여 : 이미 존재하는지 확인 후 (QrBLOpen)없으면 black_list table에 insert (QrBLExec)한다. : 5. 위의 작업은 동시에 realtime으로 동시에 이루어 진다. : : 3 : DBSale - default transaction 없슴 : : TrSaleData - database name= dbsale : QrSaleDataOpen(select 전용) - transcation =trsaledata : QrSlaedataExec(execute 전용) = transaction 없음 : : TrBL (4번의 blacklist 전용 transaction) - database name = dbsale : QrBLOpen(select 전용) - transaction 속성= trbl : QrBLExec(execute 전요) - transcation 속성 = 없슴 : : TrTerm (1번의 단말기 data 전용 transaction) - database name = dbsale : QrTermOpen(select 전용) - transaction 속성=TrTerm : QrTermExec(execute 전용) - transcation 속성 = 없슴 : -------------------------------------------------------------------------- :

+ -

관련 글 리스트
470 [질문] interbase transaction 등에 관한 질문입니다. 고수님들 꼭 도와 주십시요... 흑흑흑.. 박한수 2143 2002/10/15
472     Re:[질문] 자문오답(?) 박한수 2200 2002/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.