Q&A

  • 마이다스에 관한질문입니다.
클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 request뭐더라? 하여간 그런 이벤트에서 sql문을 받아 실행하는 방식을 사용합니다.

그런데 트렌젝션은 어떻게 하는건지 모르겠습니다.

start transaction도 다른 sql문처럼 서버측 프로바이더로 넘기면 되나요?

2  COMMENTS
  • Profile
    권민호 2001.03.05 19:05
    엉망이 wrote:

    > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 request뭐더라? 하여간 그런 이벤트에서 sql문을 받아 실행하는 방식을 사용합니다.

    > 그런데 트렌젝션은 어떻게 하는건지 모르겠습니다.

    > start transaction도 다른 sql문처럼 서버측 프로바이더로 넘기면 되나요?



    물론 직접sql을 날려도 가능할 겁니다.

    하지만 디비마다 트랜잭션명령어가 틀리다면 매번 트랜잭션문을 고쳐줘야 겠죠



    저는 어플리케이션 서버측에 데이타베이스 컴포넌트를 놓고

    프로시져를 하나 만들죠



    procedure Transaction_Mode(i:Integer);

    begin

    case i of

    0 : Database1.StartTransactoion;

    1 : Database1.Commit;

    2 : Database1.Rollback;

    end;

    end;



    이걸 호출시는

    DCom.AppServer.Transaction_Mode(0);

    이런식으로 사용을 합니다.

  • Profile
    엉망이 2001.03.05 20:50
    권민호 wrote:

    > 엉망이 wrote:

    > > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 request뭐더라? 하여간 그런 이벤트에서 sql문을 받아 실행하는 방식을 사용합니다.

    > > 그런데 트렌젝션은 어떻게 하는건지 모르겠습니다.

    > > start transaction도 다른 sql문처럼 서버측 프로바이더로 넘기면 되나요?

    >

    > 물론 직접sql을 날려도 가능할 겁니다.

    > 하지만 디비마다 트랜잭션명령어가 틀리다면 매번 트랜잭션문을 고쳐줘야 겠죠

    >

    > 저는 어플리케이션 서버측에 데이타베이스 컴포넌트를 놓고

    > 프로시져를 하나 만들죠

    >

    > procedure Transaction_Mode(i:Integer);

    > begin

    > case i of

    > 0 : Database1.StartTransactoion;

    > 1 : Database1.Commit;

    > 2 : Database1.Rollback;

    > end;

    > end;

    >

    > 이걸 호출시는

    > DCom.AppServer.Transaction_Mode(0);

    > 이런식으로 사용을 합니다.

    먼저 답변해주신 권민호님께 감사드립니다.

    이제야 감이 잡혔습니다.

    그런데 또한가지 문제가 생겼습니다.

    예를들어 설명하자면 회계전표입력시 동시에 여러개의 테이블에 데이타를 저장해야 합니다.

    그런데 전표이외에 추가로 입력되는 사항은 옵션이라 항상 전표와 동시에 저장되는것이 아니고 사용자가 입력했을 경우에만 저장되는 겁니다. 전표와 함께 저장되야할 테이블은 많을때는 3개 적을때는 전표만 저장됩니다.

    그러자면 서버측 프로바이더로 여러개의 sql문을 한번에 넘겨야 할것 같은데 어떻게 하나요?

    서버측에서 start transaction을 걸어놓고 한문장씩 넘겨가며 처리한 후 마지막에 commit나 rollback를 하면 되나요?

    1. 서버측------- start transaction를 걸어놓고 대기

    2. 클라이언트--- insrt문을 서버측 프로바이더로 넘김

    3. 서버측------- 넘겨진 sql문을 실행한 후 대기

    4. 클라이언트--- 다음 insert문을 넘김

    5. 서버측------- 넘겨진 sql문 실행한 후 대기

    6. 클라이언트--- 다음 insert문을 넘김

    7. 서버측------- 넘겨진 sql문을 처리한 후 commit나 rollback

    이런식으로 처리되는 건가요?

    제 생각엔 여러개의 insert문을 string배열로 한번에 넘긴다음 서버측 프로바이더가 받아서

    start transaction을 한다음 순서대로 모두 처리하는게 옳을것 같은데요.

    근데 여기서도 문제는 제가 배열을 인수로 넘기는 방법을 몰라요.ㅠㅠ

    기왕이면 샘플이 있으면 좋겠는데요.

    • 델초보
    • 2001.03.05 18:50
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.06 06:39
      전체 소스 입니다. 근데.. 델초보님 답변 해주신 분한테, 공부좀 더하라는 말은 좀 심한듯 합니다. 그...
    • Larson
      2001.03.05 22:07
      델초보 wrote: > 안녕하세요. > 초보라 어려움이 많아 고수님들께 질문을 드립니다. > 두날짜사이의 달...
    • 델초보
      2001.03.05 22:46
      > procedure TForm1.Button1Click(Sender: TObject); > var > d1, d2, d3: TDateTime; > begin > d...
    • Larson
      2001.03.05 23:33
      델초보 wrote: > > procedure TForm1.Button1Click(Sender: TObject); > > var > > d1, d2, d3: TDate...
    • 이제관
      2001.03.05 19:29
      년을 날짜로 환산해 보세요. 1년은 365일 이니까 환산한 값으로 뺀후 몫만 취하고 나머지는 버립니다. ...
    • 준초보
    • 2001.03.05 18:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하눌이
      2001.03.05 19:52
      준초보 wrote: > 일반적으로 실행파일이 아규먼트를 받아 초기 실행할 수 있는데요 > 델파이에서는 어떻...
    • 엉망이
    • 2001.03.05 06:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권민호
      2001.03.05 19:05
      엉망이 wrote: > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 request뭐더라? 하여간 ...
    • 엉망이
      2001.03.05 20:50
      권민호 wrote: > 엉망이 wrote: > > 클라이언트쪽에서 서버측 프로바이더에 sql문을 넘겨 서버에서는 req...
    • ^**^!~
    • 2001.03.05 06:06
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 21:09
      흠... 이건 데이터베이스 관련 질문 아닌데 ... 어쨌건, 에러의 원인은 여러가지겠네요 만일 Delphi4...
    • ^**^~!
      2001.03.05 23:20
      델파이4에서는 ado컴포넌트를 사용을 안했거든요..... 글구 님이 말씀하신것도 에러가 나구... 좀더 자세...
    • 이진수
      2001.03.06 06:41
      음... 그렇게만 질문하시면 암것도 해드릴 수가 없네요. 뭐가 어떻게 에러가 난다. 라든지 에러 메세지가...
    • 김현덕
    • 2001.03.05 03:23
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 11:42
      Form을 Auto Create한다는 의미는 프로그램 로딩될 시 폼을 자동생성하여 메모리에 올려놓고, 나중에 그 것...
    • kylix
      2001.03.05 03:35
      프로젝트에서 한두개의 폼만을 사용한다면 별 상관이 없겠죠... 하지만 수십개의 폼을 사용한다 할때 그...
    • 김현덕
    • 2001.03.05 00:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2001.03.05 20:36
      안녕하세요 이진수입니다. 볼까요? 밑에 분 말도 맞긴한데요 다시 한번 정리해볼께요 델파이는 Modu...
    • 감초
      2001.03.05 02:23
      이것은 실제로 델파이 이전에 파스칼 초보자들에게는 아주 중요한 문제입니다. Cross Reference문제라고도...
    • 이명학
    • 2001.03.05 01:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하눌이
      2001.03.05 19:54
      이명학 wrote: > > MDB와 오라클을 서로 Import/Export를 이용하는 루틴을 이용하고 있습니다. > 우선 ...
    • 이명학
      2001.03.05 20:40
      하눌이 wrote: > 이명학 wrote: > > > > MDB와 오라클을 서로 Import/Export를 이용하는 루틴을 이용하...
    • 까망^^;
      2001.04.13 22:52
      신제훈 wrote: > 있을까여 ? > 모든 이벤트를 다 써봤지만 그 이벤트는 못 잡는군여.. > 허허 > 참...
    • 이진수
      2001.03.05 12:04
      에고 제가 게을러서요 걍 설명 드릴께요 ^^ 우선 한페이지에 모든걸 출력시키시려면 StretchDraw란게 있...
    • 초보짱
    • 2001.03.04 10:34
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 도지성
      2001.03.05 18:55
      초보짱 wrote: > 제가 이번에 벽돌 깨기를 만들려구 하는데여.... > 공이 벽돌 혹은 벽에 맞구 튕길때 각...
    • kylix
      2001.03.05 04:55
      흠~~~ 기본적인거는 입사각과 반사각이 같다는 거겠죠... 밑에 조종하는 패널에 맞을땐 조종하는 패널의...
    • 초보짱
      2001.03.05 05:06
    • kylix
      2001.03.05 08:04
      그게 어떻게 90도가 돼나여??? 그럼 수직으로 입사하면 수평으로 날아가나여??? x축을 향하여 입사할때 ...
    • 초보짱
      2001.03.04 13:36
    • 김현덕
    • 2001.03.04 07:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • kylix
      2001.03.04 08:26
      검색해봐여~~~ SringReplace로... 김현덕 wrote: > 안녕하세요 > 보통 금액에 붙는 , 만 삭제하고...
    • 토끼탕
    • 2001.03.04 04:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진호
      2001.03.04 04:19
      토끼탕 wrote: > 안녕하세요.. 다이렉트X를 이용해서 만들어진 소스를 받아서 분석해보고 있는데요.. 이거...
    • 이승근
    • 2001.03.04 00:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김일영
      2001.03.04 00:58
      ShowModal로 띄우고자 하시는 form의 Visible을 False로 바꿔 놓으세요. ============================...