2016-08-30 2 views
1

OpenQuery를 사용하여 고유 한 오류가 발생했습니다.극복하는 방법 테이블의 레코드에 레코드 잠금 오류가 발생했습니다.

OLE DB provider "MSDASQL" for linked server "CAPITAOC" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Failure getting record lock on a record from table PUB.RE-TNCY-PERSON.". OLE DB provider "MSDASQL" for linked server "CAPITAOC" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Error in row.". Msg 7330, Level 16, State 2, Line 1 Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "CAPITAOC".

가 어떻게이 데이터를 읽습니까 :

select * from OpenQuery("CAPITAOC",'SELECT per.*             
              FROM pub."re-tenancy" AS t 
               INNER JOIN pub."re-tncy-person" AS per 
               ON t."tncy-sys-ref" = per."tncy-sys-ref" 
               INNER JOIN pub."re-tncy-place" AS place 
               ON t."tncy-sys-ref" = place."tncy-sys-ref" 
             WHERE t."tncy-status" = ''CUR'' and place."place-ref"=''GALL01000009''') 

이 오류 메시지는 다음과 같습니다

이 내 쿼리입니다?

답변

1

레코드 잠금 오류 : 다중 사용자 환경에서 다른 사용자 세션이 해당 레코드에 액세스하지 못하도록 업데이트중인 레코드를 잠그는 것이 유용합니다. 이렇게하면 데이터가 "더티 읽기"되지 않습니다. http://knowledgebase.progress.com/articles/Article/20255

The Transaction Isolation Level must be set prior to any other transactions within the session.

을 그리고 이것은 당신이 당신의 기록을 잠근 WHO 알아낼 방법은 다음과 같습니다 :

이 문제를 극복하기 위해,이 글을보고 제안 나는 싶습니다, 또한 http://knowledgebase.progress.com/articles/Article/19833

을 당신이 요구하지 않는 한 당신의 업데이트를 자동 커밋하지 않는 SQL 탐색기와 같은 것을 사용한다면, 당신이 당신의 변경을 커밋 할 때까지 데이터베이스 테이블은 잠길 수 있다고 제안한다.

+0

외부 리소스에 대한 링크가 권장됩니다. 그러나 링크를 둘러싼 컨텍스트를 추가하여 동료 사용자가 그것이 무엇이며 왜 존재하는지 알 수 있도록하십시오. 대상 사이트에 도달 할 수 없거나 영구적으로 오프라인 상태가되는 경우 중요한 링크의 가장 중요한 부분을 항상 인용하십시오 ._ – Bugs