2011-04-20 2 views
0

ACE를 사용하여 MS Access 2010 DB에 행을 삽입하는 간단한 멀티 스레드 .NET 응용 프로그램이 있습니다. 작업 만 수행합니다. MS Access는 삽입물에서 페이지 수준 잠금을 수행하기 때문에 때로는 잠겨 있습니다.MS Access 2010 용 잠금 유형 INSERTS

이 잠금 유형을 변경하는 방법이 있습니까? 또는 잠금 모드를 완전히 무시하고 잠재적으로 잠긴 페이지를 찾으면 새 페이지를 만들 수있는 "위험 모드"가 있습니까?

편집 : 여기서 잠금을 제어 할 방법이 전혀 없습니까? 지금까지 작동하는 해킹은 이러한 트랜잭션에 대한 단일 공유 연결을 유지 한 다음 연결 개체가 삽입을 대기열에 올려 놓는 것입니다. 이것은 효과가 있지만이 연결이 주위에 떠있는 것을 좋아하지 않습니다.

답변

0

데이터베이스를 업데이트하기 위해 어떤 인터페이스를 사용하고 있습니까? OLEDB? 그래서,이 문서는 질문에 대한 답을 보인다면 :

PRB: Jet 4.0 Row-Level Locking Is Not Available with DAO 3.60 연결 개체의 속성 설정의 문제가 될 것으로 보인다

:

연결 개체의 동적 속성 설정을 (" 제트 OLEDB : 그것은 가치가 무엇인지 1.

에 데이터베이스 모드 잠금 ")는, 나는 제트/ACE이 기위한 아주 적합한 데이터 저장소로 고려하지 않을 것 그러나 그것은 삽입물의 빈도에 달려 있습니다.

시간 10, 아무런 문제가 없습니다.

10 분, 나는 다른 데이터베이스로 전환 할 것입니다.

BTW를 사용하면 연결을 다시 열 때마다 잠금 파일을 다시 만드는 오버 헤드 때문에 Jet/ACE 데이터 저장소로 작업하는 것이 좋습니다.

+0

나는 이것을 시도 할 것이다. 그 프로젝트는 지금 당장은 보류 중입니다. 이것은 실제로 프로덕션 코드가 아닌 디버그 헬퍼이므로 메서드에 많은 단점이 있습니다. – Matthew