Q&A

  • access깨짐
저희가 ms access를 db로 써서 프로그램을 쓰는데 멀쩡하던게 갑자기 깨지는 경우가 많은데 이 문제는 db자체의 문제인가요 아니면 프로그래밍할때 처리를 잘못해주어서 그런가요
현재 db폴더를 공유해서 4~5정도의 컴퓨터에서 입력과 조회작업을 동시에 하는데 insert나 update문 같은 경우에는 transaction을 거의 다 걸어주었는데
원래 다중사용자가 하기에는 문제가 있는 db여서 그럴까요?
아시는 분 계시면 답변 올려주시면 고맙겠습니다.
2  COMMENTS
  • Profile
    김경록 2004.02.23 02:31
    음.. 결과적으로는 다중 사용자용으로 사용하기는 어렵습니다.
    물론, Exclusive Access를 사용하여,
    MDB에 접속한 user가 있다면, 다른 유저는 접속 대기하는 형식으로
    프로그램을 짜 놓았다면, 크게 문제가 없겠지만,
    동시에 MDB를 Access하지 못한다는 한계가 있습니다..
    또한, 여전히
    PC 전원의 flesh(예, 갑작스런 부팅, 전원꺼짐등등)이 발생했을시
    Tracsaction에 있던 여러 정보들과 index들이
    *.MB 파일을 생성함과 동시에 깨어지는 그런 현상이 발생합니다.
    물론, 동시에 Access하였을때에 많은 자료를 조회하는 SQL문을
    사용할시에 *.MB 파일(메모리파일)이 생성되는데..
    이때 서로 Access 순위에 대해서
    MDB가 관리시 Paging 문제가 발생하게 되는데,
    이때 많은 문제가 발생하기도 합니다.
    간단히, 말해서, index가 잘 깨어진다는 말입니다.
    저도 정확하게는 그런 현상이 왜 일어나는지는 확실히는 모르겠지만,
    정확한 Trasaction 제어가 되지 않아서 발생하는 문제로 보입니다.

    따라서, 2명이상이 사용할시에는 되도록 무료 DB(파이어버드,mysql)등을
    이용하거나, 상용 DB(Ms-sql, oracle, informix등)를 이용하는게
    좋다고 판단됩니다.

    저는 개인적으로 mysql을 권해 드리고 싶습니다.
    물론, 각종 OS 버젼으로 무료로 다운받으실 수 있으며,
    Source 또한 받으실 수 있습니다.



  • Profile
    김수현 2004.02.20 17:45
    저도 잘 알지는 못하지만, 2년전에 access로 시스템을 개발한 적이 있는데... 저의 경우도 4 ~ 5명 정도가 동시에 transaction을 하는 시스템이었습니다.
    그당시 저도 비슷한 경우가 있었는데...
    제 생각으로는 ms access의 DB를 여러 사용자가 동시에 사용하는데는 문제가 있는걸로 생각해서, DB는 오라클을 쓰고 access 는 client용으로 바꾼적이 있습니다.

    그냥 참고하시기 바랍니다.

    • 용이...
    • 2004.02.21 21:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 레인시즈
      2004.02.23 19:28
      확인 버튼에 ModalResult의 값을 설정 해 주심 됩니다. 아래와 같이요. 일단 버튼 클릭을 하고 Exit를 하...
    • 성더기
      2004.02.23 19:27
      모달폼(ShowModa)l에 ModalResult 값이 들어가면 클로즈 이벤트가 발생합니다 님게서 원하고자 하는 방법...
    • 김병윤
      2004.02.21 23:15
      별달리 에러날 일이 없는데.. 그리고 여쭤보고 싶은 내용이 있는데요 InformBox 는 뭐죠? 걍 ShowMessag...
    • 문지영
    • 2004.02.21 20:35
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 손광현
      2004.02.21 21:17
      프로그램 시작시에     DateSeparator := '-';     shortdat...
    • 손희석
      2004.02.22 07:04
      SysUtils유닛의 EncodeDate 함수를 사용하기를 추천합니다. function EncodeDate(Year, Month, Day: ...
    • 엑기스
    • 2004.02.21 19:37
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2004.02.22 12:04
      if edit1.text = '' then edit1.text := 0; 이라고 코딩을 하시면..^^;
    • 엑기스
      2004.02.24 03:47
    • 아프락삭스
      2004.02.25 00:44
      if edit1.text(여기서 한칸 띄고)=(다시 한칸띄고)'' 이렇게 하라는 말 같습니다. 비교 if edit1.text...
    • 윤상현
    • 2004.02.21 19:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진용
      2004.02.24 00:06
      public 변수로 선언한다구,,, 메모리문제가 나진 않을껀데요... Buffer_write 해당함수에서 수행하는게 어
    • nilriri™
      2004.02.21 08:42
      코딩을 어케 하셨나여? 수정했다는데..어케 수정하셨는지...그리고 무슨 에러가 났는지.. 아무것도 ...
    • 김경록
      2004.02.24 00:26
      이거 또, 제가 올린 프로그램을 선전해야겠군여.. 자료실에 보면, 제 이름으로 올린 예제가 있으니, 확인...
    • nilriri™
      2004.02.21 08:45
      ㅡㅡ; 위에 꺼랑 같은 질문?? 쿼리 컴포넌트의 Cursor(마우스 커서 말하는거 아님...)Type이.. 응용...
    • 정진만
      2004.02.23 19:40
      제가 자주 쓰는 방법이 있습니다. 이렇게 한번 해보세요. var   List: TStrings; be...
    • 고가람
      2004.02.21 02:20
      아쉽게도 델파이에는 없는걸로 알고 있습니다. 저번에 자바의 해쉬테이블 같은 구조가 필요해서 저...
    • 손희석
      2004.02.21 08:55
      THashedStringList를 한번 써보시면 어떨지.. ^^ 그냥 끄적여 봤습니다.. VCL에 있는 객체인데 비슷...
    • 하태희
    • 2004.02.20 23:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 02:23
      간단한 예제를 올려 드리지여.. 결론은 "된다"  입니다.. < 테스트 환경 > 개발툴:...
    • 하태희
      2004.02.23 20:00
      답변감사합니다. 헌데... 프로시져내에 변수에 값을 초기화하는 문자을 넣으면 오류가 발생을 하거든요....
    • 미러
    • 2004.02.20 22:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.20 22:04
      네자리를 채우는 방법은 formatfloat('0000', i) 하시면 됩니다
    • 이중철
      2004.02.20 20:56
      여러방법이 있겠으나 sdk함수 filecopy(vb하고 똑같죠^^)를 쓰시면 될듯하네요 헬프는 windows sdk 보시...
    • 손상엽
      2004.02.21 01:05
      SDK 함수라는게.. 뭘 뜻하는지.. ㅡㅡ;;; 무슨 컴포넌트를 따로 설치해야 하나요? 제컴터에선.. 이...
    • 손희석
      2004.02.21 09:01
      CopyFile이라는 함수가 있습니다. 헬퍼에 나옵니다.. Help메뉴의 Windows SDK에 있답니다.. 아래와 ...
    • mrdelphi
    • 2004.02.20 09:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.20 18:14
      상위 20개를 제외한 나머지중에서 20개를 가져오시면 됩니다 select top 20 * from tablename where fldn...
    • 유부남
    • 2004.02.20 05:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김형태
    • 2004.02.20 02:10
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박동호
    • 2004.02.20 01:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 02:31
      음.. 결과적으로는 다중 사용자용으로 사용하기는 어렵습니다. 물론, Exclusive Access를 사용하여, MDB...
    • 김수현
      2004.02.20 17:45
      저도 잘 알지는 못하지만, 2년전에 access로 시스템을 개발한 적이 있는데... 저의 경우도 4 ~ 5명 정도가 ...
    • 조지연
    • 2004.02.20 01:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • OH~
    • 2004.02.20 00:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 공호준
      2004.02.20 17:53
      아마 접지가 되지 않아서 내부에 전류가 흐르고 있을 때 종종 안되는 경우가 있습니다. PC의 232포트 5과 P...
    • OH~
      2004.02.21 18:02
      접지를 하는 방법은 메인보드를 뜯어서 절연시켜주어야 하는건가요? PC외부에서는 아무리 봐도 안되네...
    • 정재식
      2004.04.22 05:32
      PC의 접지는 전원선을 이용하시면 됩니다. 전원선중 가운데 단자가 접지 선이기때문에 별도로 하지 않...
    • 이중철
      2004.02.20 02:16
      type   _MsgStruct = record     DataLen, FC, MCmd, SCmd : byte; &n...
    • 이상협
    • 2004.02.19 22:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.02.20 02:09
      Action := cafree; frmMain := nil; 이부문만 빼 주세요
    • 손희석
      2004.02.19 23:07
      FormClose 이벤트에서 메인폼.free를 빼주세요. 메인폼을 해제시켜주는 것을 그 이벤트에 넣게 되면 ...
    • nilriri™
      2004.02.21 08:48
      .