2013-03-07 1 views
2

이 사이트에는 다른 질문이 있습니다.이 질문에 대해서는 제가 물어볼 사항과 비슷하지만 약간 다릅니다 (누군가가이 문제를 정확하게 다루는 질문을 알고있는 경우). , 그 다음 그것에 나를 안내 해주세요).SQL Server를 사용하여 액세스시 쓰기 충돌

SQL Server 2000이 설치된 Windows Server 2003이 있습니다 (필자 생각). 이 SQL Server에는 현재 5 개의 데이터베이스가 있으며 그 중 4 개는 현재 사용하고 있습니다. 지금, 나는 또한 그것에 설치되어있는 Enterprise Manager의 사본을 가지고있는 laptop (win xp pro)을 가지고 있으며, 노트북을 통해 SQL 데이터베이스를 유지한다. 아무 문제없이 (inotherwords 네트워크를 통해).

또한 Access에서 ODBC 링크를 사용하여 '프론트 엔드'를 가지고 있으므로 Access에서 양식을 사용하여 SQL의 테이블 내용을 볼 수 있습니다. 나는 몇 주 동안 (데이터베이스를 실제로 만들었 기 때문에)이 설정에 아무런 문제가 없었다.

그러나 Access에서 발생하는 문제는 두 데이터베이스의 정보를 변경할 수 있지만 다른 두 정보는 변경할 수 없다는 것입니다. 두 개의 비 활동 작업 중 하나에서 변경을 시도하면 "쓰기 충돌 -이 레코드가 다른 사용자에 의해 변경되었습니다 ..."라는 메시지가 표시됩니다. 그러나 나는 유일한 사용자입니다! 액세스 프론트 엔드를 열 때마다 입력해야하는 SQL Server 로그인을 사용하고 있습니다. 여기서 무슨 일이 일어나고있는거야? 타임 스탬프 필드에 대한 내용을 읽었지 만 구현해야하는 이유 또는 구현 방법을 이해하지 못합니다. 이 문제는 나를 미치게합니다!

답변

2

2 개의 데이터베이스에서 수정할 기본 테이블에 올바른 기본 키가 있습니까? 내가 묻는 이유는 Access가 (기본 키나 다른 고유 한 필드가 없어서) 업데이트중인 정확한 레코드를 확인할 수없는 경우 'Write Conflict'오류가 발생하기 때문입니다. 앞서 언급했듯이 사람들은이 문제가 발생할 때 타임 스탬프 필드를 제안하는 경우가 많지만 제 경험상 SQL Server가 아닌 Access 및 MySQL을 처리 할 때만 도움이됩니다.

또한 Access의 어떤 버전 (및 서비스 팩)을 사용하고 있습니까?

+0

모든 네 개의 테이블에는 기본 키가 있지만 기본 키가 '올바른'의미는 아닙니다. Access의 폼은 필드의 빈 칸으로 표시되며 테이블의 기본 키를 생성하고 문제가 해결 될 때까지는 Access에 문제가있었습니다. 저는 Access 2000을 사용하고 있습니다. (정확하게 최신 정보는 아닙니다.) 분명히 문제를 일으키지는 않습니다. 왜냐하면 두 테이블 모두에서 작동하고 나머지는 작동하지 않기 때문입니다. 모든 테이블은 동일한 SQL Server 인스턴스 아래에 있습니다. –

+0

또한 작동하지 않는 두 테이블에는 정수 키가 있고 두 테이블에는 char 키가 있습니다. 문제가되는 것을 볼 수는 없지만 int 중 하나에서 char로 변경하여 테스트했지만 아무것도 해석하지 않아 다시 변경되었습니다. –

+0

죄송합니다. 정확한 단어는 없어야합니다. 저는 단지 기본 키를 의미했습니다. :) 또한 Access 2000 및 SQL Server에서 bit 및 float 필드에 문제가 있습니다 ([link] (http://support.microsoft.com/kb/280730)). 이 중 하나가 문제를 일으키는 2 개의 테이블에 적용됩니까? – RichardC

0

BIT 필드가있는 경우 테이블에서 업데이트를 수행하는 경우 BIT 필드에 값을 입력해야합니다. IE는 각 필드에 "0"을 입력해야합니다. null 일 수 없습니다.

+1

이것이 어떻게 문제를 해결하는지 분명히 할 수 있습니까? – Fiddles

관련 문제