2010-01-15 1 views
1

연결된 테이블을 묶는 데 사용되는 mdb가 있습니다. 이러한 링크는 다른 Access mdb의 테이블을 가리 킵니다.ms 연결된 SQL 서버 테이블이 포함 된 mdb를로드 할 때 액세스가 충돌합니다.

제어 된 마이그레이션의 일환으로이 링크 테이블을 대신 SQL Server 인스턴스를 가리 키도록 변경했습니다. 연결된 모든 테이블을 반복하고 연결 문자열을 ODBC로 업데이트 한 다음 테이블에 RefreshLink를 호출합니다.

그러나 ODBC 링크를 사용하여 새 데이터베이스를 열면 Access에서 충돌이 발생합니다. 더 흥미롭게도, 하나의 특정 링크 된 테이블 (ADO를 통해)을 제거하면 데이터베이스를 열 수 있습니다. 더욱 흥미롭게도 Access 테이블을 통해 링크 된 테이블을 다시 추가하면 충돌이 발생하지 않으므로 SQL Server의 테이블 자체에는 문제가되지 않습니다.

그래서이 특정 연결 테이블에 대해 무엇이 충돌하는지 파악해야합니다. 도움을받을 수있는 충돌에 대한 정보를 얻을 수 있습니까? 어디에서 조사를 시작할 수 있습니까?

EDIT : 링크 새로 고침 또는 DSN이 있거나 DSN이없는 테이블을 삭제하고 다시 생성하는 등의 방법으로 링크 테이블을 새로 고치는 방법을 시도해 왔습니다. 개봉시 충돌.

EDIT 2 : 슬프게도 실제로 충돌이 소스 제어로 진행되는 것 같습니다. SCCAPI 공급자를 비활성화하면 충돌이 발생하지 않습니다. 나는 아직도 이것을 조사하는 방법을 모른다.

답변

0

테이블을 연결하는 전략으로 결과가 변경되지 않아 동일한 테이블로 인해 동일한 데이터베이스에서 여전히 동일한 크래시가 발생합니다.

그러나 소스 코드 제어를 사용하지 않도록 설정하면 문제가 해결 될 수 있으며 가능한 원인이나 조사 방법을 제안한 사람이 아무도 없으므로 답변으로 "SCC 사용 안 함"을 수락하여 질문을 닫습니다.

0

링크를 삭제하고 완전히 새로운 링크를 만듭니다. ODBC 링크가 ODBC 링크로 시작하는 경우에도 안정적으로 새로 고칠 수 없습니다.

+1

동의합니다. 시작할 때 다른 것을하기 전에 모든 링크를 삭제하고 다시 작성하는 코드를 작성하십시오. 그것은 매우 빨라야합니다. 로컬 테이블을 사용하여 테이블 목록과 필요한 링크 또는 연결하려는 서버가있는 단일 행 (모든 연결된 테이블을 다시 만들고 동일한 서버에 연결해야한다는 가정하에)을 사용할 수 있습니다. 연결된 테이블의 존재가 삭제 및 재 작성을 유발하는 요소입니다). – ErikE

+0

ODBC 연결을 성공적으로 업데이트 할 수 있는지 여부는 ODBC 공급자에 따라 다릅니다. 예를 들어, 회계 프로그램 MYOB의 ODBC 드라이버에 대한 링크는 삭제 및 재 작성 없이도 잘 업데이트 될 수 있지만 제 경험상 SQL Server 및 MySQL에 대한 링크는 불가능합니다. –

+0

@Emtucifor : 사실, 사용자 정의 컬렉션이나 배열에 테이블 이름을 저장하고 다시 삭제하기 전에 저장 작업을 수행 할 필요가 없습니다. 영구 저장 장치가 필요하지 않습니다. –

관련 문제