PRB: ASP에서 '작업이 업데이트 가능한 쿼리를 사용해야 합니다.' 오류를 반환한다

기술 자료 번역 기술 자료 번역
기술 자료: 175168 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

현상

Active Server Pages(ASP)에서 ActiveX Data Objects(ADO)를 사용하면 다음과 같은 일반적인 오류가 발생할 수 있습니다.
Microsoft OLE DB Provider for ODBC Drivers 오류 '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] 작업이 업데이트 가능한 쿼리를 사용해야 합니다.

원인

이 문서에서는 이 오류의 기본적인 원인과 그게 맞는 해결 방법을 설명합니다. 이 문서에서는 Microsoft Access 데이터베이스에 대해 설명하지만 여기서 제공하는 정보는 다른 종류의 데이터베이스에도 적용됩니다.

해결 방법

이 오류는 스크립트가 데이터베이스의 정보를 변경하는 업데이트 또는 일부 다른 작업을 수행하려고 할 때 일반적으로 발생합니다. 이 오류는 ADO가 다음 이유 중 하나로 인해 데이터베이스에 쓸 수 없기 때문에 발생합니다.

  1. 가장 일반적인 이유는 "Everyone" 그룹의 기본 구성인 인터넷 게스트 계정(IUSR_MACHINE)에 데이터베이스 파일(.mdb)에 대한 쓰기 권한이 없는 것입니다. 이 문제를 해결하려면 Explorer의 보안 탭을 사용하여 인터넷 게스트 계정이 올바른 권한을 갖도록 이 파일에 대한 속성을 조정하십시오.

    참고: ADO에서 Microsoft Access 데이터베이스를 사용할 때는 인터넷 게스트 계정에 .mdb 파일이 들어 있는 디렉터리에 대한 쓰기 권한을 제공해야 합니다. 이는 Jet가 .ldb 파일을 만들어 데이터베이스 잠금을 처리하기 때문입니다. Jet가 이 디렉터리에 임시 파일을 만들 수 있기 때문에 "Temp" 폴더에 대한 읽기/쓰기 권한도 제공해야 할 수도 있습니다.
  2. 이 오류의 두 번째 이유는 데이터베이스를 쓰기 위한 올바른 모드를 사용하여 열지 않았다는 것입니다. Connection 개체에서 Open을 수행하는 경우 여기에 표시된 대로 Mode 속성을 사용하여 연결에 대한 권한을 지정합니다.
    
          SQL = "UPDATE Products Set UnitPrice = 2;"
          Set Conn = Server.CreateObject("ADODB.Connection")
          Conn.Mode = 3      '3 = adModeReadWrite
          Conn.Open "myDSN"
          Conn.Execute(SQL)
          Conn.Close
    
    						
    참고: 기본적으로 MODE는 일반적으로 업데이트를 허용하는 0(adModeUnknown)으로 설정됩니다.
  3. 이 오류의 또 다른 이유는 "읽기 전용" 설정을 ODBC Manager의 이 DSN에 대한 Options 페이지에서 확인할 수 있다는 것입니다.
  4. 마지막 문제와 해결 방법은 SQL 데이터 원본과 관련이 있습니다. 이 오류의 원인은 데이터베이스의 참조 무결성을 위반하는 SQL 문 때문일 수 있습니다. 다음은 오류가 발생하는 가장 일반적인 몇 가지 쿼리입니다.
    • 가장 간단한 그룹은 UniqueValue 속성을 Yes로 설정한 크로스탭, SQL 통과(pass-through), 통합 또는 업데이트(또는 테이블 작성) 작업 쿼리 등의 변경할 수 없는 쿼리입니다.

    • 아주 일반적인 또 다른 이유는 조인이 고유한 색인을 갖고 있지 않은 연결된 ODBC 테이블을 포함하고 있기 때문입니다. 이 경우에 SQL은 해당 값이 쿼리를 통해 변경되는 필드가 있는 테이블의 레코드가 고유하다고 보장할 수 없습니다.

    • 확실한 해결 방법을 갖고 있는 경우도 있습니다. "일대다" 쿼리에서 "일"쪽의 조인 필드를 업데이트하려고 할 경우 계단식 업데이트를 설정하지 않았으면 실패하게 됩니다. 이런 식으로 JET 엔진에 참조 무결성을 위임합니다.

현재 상태

이것은 의도적으로 설계된 동작입니다.



Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 175168 - 마지막 검토: 2005년 2월 1일 화요일 - 수정: 4.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Active Server Pages 4.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1
  • Microsoft ActiveX Data Objects 2.1 서비스 팩 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
키워드:?
kberrmsg kbdatabase kbprb KB175168

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com