Q&A

  • 두 데이터베이스의 Commit
procedure BitBtn1Click(Sender: TObject);
begin

    DataMd.DBDZAIS.StartTransaction;  //MS-SQL서버 7.0
    DataMd.DBtraffic.startTransaction;   //오라클 10g
    //위 두 데이터 베이스는 한 회사에 있는 다른 서버 입니다. ip주소가 다른 상태입니다.
    //각각의 Client를 설치하고  BDE로 연결 했습니다.

    try
        Query로 DBDZAIS 디비의 한 테이블에 데이터 입력.

        Query로 DBtraffic 디비의 한 테이블에 데이터 입력.

        DataMd.DBDZAIS.Commit;
        DataMd.DBtraffic.commit;

    except
       on E:Exception do begin
        
           DataMd.DBDZAIS.RollBack;
           DataMd.DBtraffic.rollback;
        
           showmessage('실패' + #13+ E.Message);        
       end;
    end;
end;


위처럼 처리를 하려고 합니다.

그런데 가만히 보면 뭔가 이상합니다.

1. 스타트트랜잭션은 두개의 데이터베이스가 동시에 시작 할 수 있습니다.

2. DataMd.DBDZAIS.Commit; ==> 성공하고
  
   DataMd.DBtraffic.commit;  ===> 실패라면...

   except를 타서 롤백을 만날텐데요... 그럼 이미 성공한 DBDZAIS는  롤백의 의미가 없어지는군요...맞죠?

3. DataMd.DBDZAIS.Commit; ==> 성공하고
    DataMd.DBtraffic.commit;  ==> 성공하면 아무문제 없네.

4. DataMd.DBDZAIS.Commit; ==> 실패하면
    except를 타서 롤백을 만나고 두 데이터베이스에 롤백작업을 하니가 아무 문제 없네.

자... 이럴때요  2번상황을 어찌 해결 할 수 있나요?
혹시 이렇게 처리한 경험을 가지고 계신분 있으시면  한마디 부탁 드립니다.
감사합니다.

1  COMMENTS
  • Profile
    권태훈 2006.06.28 03:22


    두개를 분리하는것이 맞습니다.

    아니면 상하구조로 exception else일때 두번째 commit 실행해야 합니다.



    • 신철우
    • 2006.06.29 02:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 착한천사
      2006.06.30 20:29
      착한천사 김경록입니다.. 흠.. 너무 느린 요인은 굉장히 많은데요.. 1. Open된 cursor가 많다.. (즉, ...
    • 박성준
    • 2006.06.28 23:11
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박정수
    • 2006.06.28 20:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 착한천사
      2006.07.02 01:10
      충실한 델파이 툴의 help 를 보십시오.. 아주 훌륭하게 설명해 놓고.. 예제도 볼 수 있습니다. 그것외에...
    • 박준영
    • 2006.06.28 01:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2006.06.28 02:16
      이미지로 변환하셔서 보내시믄 안될까요? 이미지 변환하는방법에 대해서는 팁게시판에서 검색하시면 있...
    • 박준영
      2006.07.03 19:47
      답변 주셔서 감사합니다.. ^^ 팀게시판가서 말씀하신 내용 확인 했구요.. 그런데 그 이미지를 메일...
    • 아폴론
    • 2006.06.28 00:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2006.06.28 03:22
      두개를 분리하는것이 맞습니다. 아니면 상하구조로 exception else일때 두번째 commit 실행해야 합...
    • 김재영
    • 2006.06.27 20:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KDDG_Apine
      2006.06.28 09:17
      음 전체 소스가 없어서 추축으로 글을 씁니다.. 제가 보기에는 핸들이 남아 있다는 얘기는 어떤것이 프리...
    • 거리에서
    • 2006.06.27 19:52
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2006.06.27 19:56
      안녕하세요. 최용일입니다. 패키지파일의 Requires절에  designide.dcp를 추가해주시면 proxi...
    • 거리에서
      2006.06.27 20:24
      안녕하세요. 물론 저도 위에 얘기하신 대로 designide.dcp 패키지에 추가 햇고요 toolsApi도 잡아
    • 최용일
      2006.06.27 20:44
      안녕하세요. 최용일입니다. 분리하셨다고 했는데 PagesReg유닛에 디자인타임컴포넌트랑 런타임컴포넌트...
    • 델초보
    • 2006.06.27 19:48
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김경식
    • 2006.06.27 04:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박상용
    • 2006.06.27 01:41
    • 0 COMMENTS
    • /
    • 0 LIKES
    • kddg_hyun
    • 2006.06.26 22:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2006.06.27 18:33
      안녕하세요? 호출받는Form.Tag를 이용하셔서 호출하는 폼에 따라 값을 변경하시면 되지 않을까요?
    • 차종일
    • 2006.06.26 19:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 차종일
      2006.06.29 03:28
      다시 질문합니다. API에 ID값으로 handle을 찾는 것이 있던데요. handle은 실행시마다 변경되는 것으로 ...
    • 강인규
      2006.06.26 20:11
      제가 알기로는 바이너리는 컴퍼넌트의 이름을 가지고 있지 않습니다. 클래스 명, 클래스 아이디, 컴퍼넌트...
    • 강인규
      2006.06.26 19:33
      UInt64를 찾으시는 건가요?
    • 희망초고수
      2006.06.26 22:40
      고수님께서 말씀 하신 형을 도움말이나 홈피에서 찾아 보았는데 그 형의 범위가 안 나오더라구요? uin...
    • 박성준
      2006.06.26 23:05
      여기 잘 나와있네요...^^ http://jjunya84.egloos.com/27949/
    • 서명호
    • 2006.06.24 05:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2006.06.24 06:30
      ExtractFilePath함수가 있습니다. ExtractFilePath(application.ExeName) 그리고 application.ExeName...
    • 머찐웅!!
    • 2006.06.23 22:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2006.06.24 06:26
      DayOfWeek함수는 TDateTime형의 입력을 받아서 해당 날짜의 요일을 숫자값으로 리턴해주는 함수입니다. ...
    • kddg_hyun
    • 2006.06.23 22:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 라벤더
      2006.06.24 01:32
      ListView.Items[i].Caption ListView.Items[i].SubItems.Strings[j] 이런식으로 하시면 됩니다~ 여...
    • 배준희
    • 2006.06.23 20:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 라벤더
      2006.06.23 21:33
      문자를 유니코드로 저장하고 읽도록 하시면 될거에요. 화면상에 출력한다면, 특정 컴포넌트를 사...
    • 배준희
      2006.06.23 22:36
      제가 잘 이해가 안되서 그러는데 자세히 설명해주시면 고맙겠습니다. 부탁드리겠습니다.
    • 라벤더
      2006.06.24 01:20
      음.. 자세히; 말씀드린것인데.. 그러니까, 먼저 중국어 즉 델파이 자체에서 지원하는 않는 문자를 읽어...
    • 김성중
    • 2006.06.23 01:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 델티즌
      2006.06.23 06:28
      요즘 가로등에는 자체 광센서로 릴레이가 동작해서 켜지고 꺼지고 하는데요. 시간 계산으로 하는것은 현실...
    • 원경심
    • 2006.06.22 20:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2006.08.19 00:44
      안녕하세요? 일단 웹브라우져 안에 생성된 에디트 컨트롤들은 실제 윈도우 내부의 에디트 컨트롤들이 아닙...