몇일전 문의 드렸던 내용인데, 해결이 안돼서 다시 질문 올립니다.
델파이 코딩으로 구현 하려고 하구 있구여
내용은 특정 작업을 시작하는 버튼을 클릭 했을때
오라클 테이블 하나를 Lock 걸고 작업을 할려고 합니다.
해당 작업이 끝나면 다시 Lock 을 해제 할거구요.
그런데 도무지 Lock 거는 코딩을 구현하기가 힘드네요...
몇일전 답변주신 StartTransaction ... commit/rollback
이걸 테스트 해보았는데 조금 의미가 틀린듯하네요
데라피이 소스 에서 StartTransaction 시작후 commit 전에 breakPoint 잡은후 SqlPlus 로 해당 테이블에 Insert 문을 실행하니깐 인서트가 되더라구요..
제가 잘못이해 한건지는 모르겠읍니다....
누가 제 애로사항 좀 해결해 주세요..... 제가 하고자 하는게 정확히 알아야 된다면 메일로 자세히 알려 드릴수 있읍니다... 부탁 드립니다.
현재 작업중인 테이블을 딴넘들이 쓰지 못하게 하는의미로 알고 잇습니다.
작업이 시작되면서 다른 테이블에 락을 건다는 의미 같으신데
저도 처음에 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 첨가하셔야 사용하실수 있겠지요?
이만 허접 펌쟁이였습니다.