PRB: ASP에서 ‘작업이 업데이트 가능한 쿼리를
사용해야 합니다.’ 오류를 반환한다. (MS 기술문서)
이 오류가 일어나는 원인 중에서 가장 자주 실수하는 것이 바로 권한에 의한 문제이다. (따라서 이 오류는 FAT32에서는 일어나지 않는다)
Jet 엔진이나 ODBC는 Access 파일을 Lock할 때 파일명.ldb라는 파일을 생성하여 해당 DB 파일을 Lock 하게 되는데1 이 때 Jet 엔진이나 ODBC가 ldb 파일을 생성하기 위하여 실행되는 유저 계정은 Guest, 즉 Everyone 계정으로 실행되므로 대다수의 경우 Jet 엔진이나 ODBC 엔진이 ldb 파일을 생성하기 위해 해당 폴더로 접근할 수 없게 된다.
해결책으로는 해당 DB 파일이 있는 폴더에 Everyone 계정의 권한을 쓰기/수정 이상으로 주면 된다.
간혹 DB 설정에 따라 임시 폴더에 ldb 파일이 생성되는 경우도 있는 듯 하니 때에 따라서는 윈도우 임시 폴더의 권한을 조정해야 할 수도 있다.
이 오류는 OLEDB로 연결해서 작업할 때 이 작업에서는 업데이트할 수 있는 쿼리를 사용해야 합니다라는 오류를 낼 때도 유효하고 ODBC로 연결해서 작업할때 일반 오류 레지스트리 키 ‘Temporary (volatile) Jet DSN for process 0×500 Thread 0xe14 DBC 0×1f209ec Jet’을(를) 열 수 없습니다와 유사한 오류를 낼 때도 유효하다.
- 이건 엔진보다도 Access 그 자체의 특징 [돌아가기]