Q&A

  • 오라클 테이블 Lock 걸고 해제 하기
몇일전 문의 드렸던 내용인데,  해결이 안돼서 다시 질문 올립니다.

델파이 코딩으로 구현 하려고 하구 있구여
내용은 특정 작업을 시작하는 버튼을 클릭 했을때
오라클 테이블 하나를  Lock 걸고 작업을 할려고 합니다.
해당 작업이 끝나면 다시 Lock 을 해제 할거구요.

그런데 도무지 Lock 거는 코딩을 구현하기가 힘드네요...

몇일전 답변주신  StartTransaction  ... commit/rollback
이걸 테스트 해보았는데  조금 의미가 틀린듯하네요

데라피이 소스 에서 StartTransaction  시작후  commit  전에 breakPoint 잡은후   SqlPlus 로 해당 테이블에 Insert 문을 실행하니깐 인서트가 되더라구요..

제가 잘못이해 한건지는 모르겠읍니다....
누가 제 애로사항 좀  해결해 주세요..... 제가 하고자 하는게 정확히 알아야 된다면 메일로 자세히 알려 드릴수 있읍니다... 부탁 드립니다.

1  COMMENTS
  • Profile
    일그니 2004.09.09 22:34
    StartTransaction은.
    현재 작업중인 테이블을 딴넘들이 쓰지 못하게 하는의미로 알고 잇습니다.

    작업이 시작되면서 다른 테이블에 락을 건다는 의미 같으신데

    저도 처음에 LOCK TABLE을 날리면 되지않을까 햇는데
    별 효험이 없다는...^^;;
    좀더 알아보니 BDE API를 이용하라는 말씀을 하시데요
    function DbiIsTableLocked (hCursor: hDBICur; epdxLock: DBILockType; var iLocks: Word): DBIResult stdcall;
    을 이용하면 되지않을까 하는데요



    procdure LockTable( atable : Table);
    var
      Locks: Word;
    begin
        DbiIsTableLocked( GetTableCursor(aTable), dbiWRITELOCK, Locks))
    end;

    LockType에는 dbiNOLOCK,dbiREADLOCK,dbiWRITELOCK이 있습니다.

    참고가 되시기를..

    USES문에 BDE 첨가하셔야 사용하실수 있겠지요?
    이만 허접 펌쟁이였습니다.


    • 박준철
      2004.09.11 01:53
      function FilterNumber(sNum:string):string; var   i : integer; begin   Resu...
    • 오병주
      2004.09.10 03:36
      폼 Create 설정하는 방법입니다..^^ procedure TForm1.FormCreate(Sender TObject); begin  &n...
    • 석주현
      2004.09.10 07:35
      내용 없어요..
    • 이승민
      2004.09.10 03:10
      procedure Tfrom1.Edit1KeyPress(Sender: TObject; var Key: Char); begin   If Not (Key In [...
    • 김형균
    • 2004.09.09 22:36
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 김형균
      2004.09.10 00:59
    • 김형균
      2004.09.09 23:48
      저가 잘못 써서 의미 전달이 잘 되지 않은것 같습니다..소스를 올려 보겠습니다. 저의 의도는 루프를 돌면...
    • 김춘경
      2004.09.09 23:40
      쿼리문으로 조건에 해당하는 레코드를 추출해서 하면 됩니다. _SQL := 'select * from T1, T2 where T...
    • 이중철
      2004.09.09 23:44
      'select * from T1, T2 where    (T1.field1 <> T2.field1    OR T1.field...
    • 김춘경
      2004.09.09 23:52
      ^^ 온라인상에서 쓰다 보니... 제 의도는 여러 필드중 어느 하나라도 틀리면 셀렉트 하도록 했습니다. ...
    • 파멸의슬픔
      2004.09.09 23:25
      소스만 보고 판단했습니다... 이렇게 한번 바꿔 보세요...   q1.sql.add('select * from test...
    • 이중철
      2004.09.09 23:23
      소스를 봐서는 목적하는것이 무엇인지 잘 모르겠네요 ^^ 먼저 SQL로 해결이 가능하다면 SQL로 하는것이 합...
    • 문의득
    • 2004.09.09 20:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문의득
    • 2004.09.09 20:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 일그니
      2004.09.09 22:02
      dbnmpntw.dll와 ntwdblib.dll을 path가 걸린 폴더 system같은 곳에 복사해 넣어주십시요. 중복되있을...
    • 달님
    • 2004.09.09 19:40
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.09.09 21:07
      소나기 님이 답변하신 내용이 맞습니다. 그러나 좀 보완해서 Edit1KeyPress 이벤트에서 아래와 같이 처...
    • 석주현
      2004.09.09 20:07
      Edit1KeyPress 이벤트에서 아래와 같이 처리 하는 방법이 있고요.   if not (Key in ['0'..'9...
    • 모영철
      2004.09.09 19:43
    • 김형균
    • 2004.09.09 19:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김춘경
      2004.09.10 03:26
      아마도 DB가 작업하는 임시파일이 아닐까요? 님이 의도적으로 만든 파일이 아니라면 지우셔도 무방할 겁...
    • 김용렬
    • 2004.09.09 19:03
    • 1 COMMENTS
    • /
    • 2 LIKES
    • 일그니
      2004.09.09 22:34
      StartTransaction은. 현재 작업중인 테이블을 딴넘들이 쓰지 못하게 하는의미로 알고 잇습니다. 작업이...
    • 석주현
      2004.09.09 14:50
      "MSComm"으로 검색 해 보시면 아래와 같이 나옵니다. 검색을 해보시고 질문을 해주시는게 좋을 것 같네요....
    • 온진욱
      2004.09.09 20:16
      님께서 알려주신 방법을 한번 찾아서 해본적이 있었는데 그때 안되길래 잘못 안건가 하고 지워버렸었는데 ...
    • Galaxy
      2004.09.09 18:50
      안녕하세요 수고 많습니다. 다른 방법은 없을까요? 답변 주신 대로 하니까 . 별 문제는 없는데... 그...
    • 오재열
      2004.09.09 04:47
      짧은 생각인데.. 해당 KeyPress가 끝나면 Key값이 반영 되지 않나요? Apple이 먼저 적용되고 Key값 'A'가 ...
    • Galaxy
      2004.09.09 05:12
    • 메니아
    • 2004.09.08 23:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.09.09 00:15
      "Process32First" 로 검색해 보세요. Process32First 와 Process32Next 가 같이 쓰이고요. 용...
    • 김형균
    • 2004.09.08 23:00
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김형균
      2004.09.09 19:58
    • 착한천사
      2004.09.09 03:22
      착한천사 김경록입니다.. 저도 크고 작은 프로젝트를 해 본 적이 있어서.. recordcount의 부정확함을 ...
    • 누렁이
      2004.09.09 01:21
      아래 요부분을   for j := 0 to qry.RecordCount -1 do   begin 요렇게 한번 바...
    • nilriri™
      2004.09.09 00:36
      레코드 카운터에 대한 답변은 아니구요.. 잠깐 소스를
    • 구창민
      2004.09.08 23:15
      안녕하세요.. Query.FetchAll ;  한번 해보시구요.. 그래도 안된다면   COUN...
    • 우용우
    • 2004.09.08 19:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.09.08 21:05
      근디요 왜 그렇게 쓰실려구... 혹시 아나요 그 이유를 알면 다른 방법이 생각날지
    • 석주현
      2004.09.08 05:52
      onMouseMove 에서 Shift 값을 읽어 보면 알 수 있습니다.   if ssLeft in Shift then &n...
    • 허상무
      2004.09.08 20:51
      답변 감사합니다. 사실 제가 원하는 것은 마우스 상태를 알 수 있는 명령어(System 명령어 포함)를 ...
    • 석주현
      2004.09.08 21:24
      음 보통 드래그엔 드롭을 할때 오토메틱으로 하지 않는것으로 알고 있습니다. 왜냐면 제가 말씀드린 ...
    • 고락춘
    • 2004.09.08 03:30
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 고락춘
      2004.09.08 22:28
      제목처럼 소나기님, 닐리리님 답변감사합니다. 두분께서 알려주신 방법대로 하니 처리가 되네요 원인...
    • 석주현
      2004.09.08 08:00
      복잡하게 하지 마시고   if FindComponent('frm_Delivery') = nil then    &...
    • nilriri™
      2004.09.08 04:53
      Action := caFree;  를 써주신다고 해서 메모리에서 해제가 안됩니다. 해서 If ActiveMDI...
    • 고진중
    • 2004.09.08 03:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 바부팅
    • 2004.09.08 00:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.09.08 03:09
      음 제가보기에는 윈속스레드가 계속 생성되었거나 S/W내의 유사 스레드가 계속 생성되어 결국 L4계층이나 ...
    • 파멸의슬픔
      2004.09.08 01:28
      우선 하신 말씀중에 10중 8,9번은 정상적인 재부팅조차 제대로 되지 않는다고 하셨습니다... 정상적으로 ...
    • 김현철
    • 2004.09.08 00:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2004.09.08 01:57
      http://www.qusoft.com/delphilegacy.html http://www.qusoft.com/ordering.html 참고하세요... ...
    • 꿈의대화
      2004.09.08 02:36
      .
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.09.08 18:19
      그럼 ODBC 말구 BDE의 정보는요... 오라클로 alias를 잡은 DB의 IP를 알수는 없을까요?
    • 정찬희
      2004.09.08 00:32
      직접 만드셔야 할듯... function getHostFilePath: string; var   buf: array[1..1024] of ...
    • 이상국
      2004.11.04 16:44
      wind98 에서는 c:\windows 에 위치하므로.. 약간의 추가 라인이 필요할 듯 합니다.
    • 최동석
      2004.09.08 00:50
      답변 감사드립니다. 그런데 아래의 function을 사용하면 windows98에서는 안될것 같습니다. 보통 OS에 ...
    • 정찬희
      2004.09.08 06:38
      답글쓰면서도 좀 찜찜하긴 했어요...^^