2011-11-02 2 views
1

SQL Server 백엔드를 사용하는 MS Access 응용 프로그램 (MDB)이 특정 데이터 형식에 문제가 있음이 잘 알려져 있습니다. 예를 들어,텍스트에서 varchar (MAX)로 이동 : MS Access에서 예상되는 문제가 있습니까?

text/ntext 필드에서 까지 varchar (MAX)/nvarchar (MAX) 필드, as recommended by Microsoft :

ntext, text 및 image 데이터 형식은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 새로운 개발 작업에서는 이러한 데이터 유형을 사용하지 말고 현재 사용중인 응용 프로그램을 수정하십시오. 대신 nvarchar (max), varchar (max) 및 varbinary (max)를 사용하십시오.

우리는 그 일을하는 데 문제가 있습니까?

답변

1

MS-Access 프런트 엔드, SQL Server 백 엔드 같은 상황에 있습니다. 우리는 이미 사용자 측에서 아무 문제없이 ntext 대신 nvarchar (max)로 모든 새로운 필드를 만들고 있습니다. 텍스트 또는 이미지 필드 유형을 사용하지 않기 때문에 아무 것도 말할 수 없습니다.

1

일, 우리는뿐만 아니라 같은 설정을 가지고 (액세스 2003 프론트 엔드, SQL Server 2005의 백엔드) 우리는 당신에 대해 물어 않았다 정확히 :

우리했다 text/ntext 열 SQL Server 테이블 및 우리는 그들을 varchar(max)/nvarchar(max)으로 변경했습니다.
우리는 Access에서 테이블을 다시 링크하지 않아도 올바르게 기억한다면 전혀 문제가 발생하지 않았습니다. 그냥 작동했습니다.

1

글쎄, 우리는 최근 확실히 함정이났습니다. 문제는 필드가 varbinary (max)로 정의 된 경우에도 연결된 테이블의 varbinary 필드에 8000 바이트를 초과하여 쓸 수 없다는 것입니다.

증명 : varbinary(MAX) on linked tables

1

나는 이것이 이전 게시물입니다 알고,하지만 난 여전히 몇몇 사람에 관련된 생각합니다. Access Memo 필드에서 SQL로 확장 된 다음 Access에서 링크 테이블로 바뀐 레거시 데이터를 많이 처리합니다.

NVARCHAR (최대)로 스케일링하면 링크 테이블에서 문제가 있음을 발견했습니다. Access Link 테이블을 작성할 드라이버에 따라 문제가 다릅니다.

SQL Native Client 10을 사용하면 Access에서 해당 필드를 NVARCHAR (4000)로 처리한다는 사실을 알게되었습니다. 드라이버가 문제를 변경하는 SQL Server를 사용하는 동안 여전히 문제가 있습니다. 이 오래된 드라이버를 사용하면 문제를 추적하는 것이 어려워 보이지만 나타나지는 않습니다. 일반적으로 비슷한 사이징 문제가 있습니다.

올바른 상황이 아직 발생하지 않았기 때문에 실제로 실행되고있는 것처럼 보이는지 조심하십시오.

필드 데이터가 4000자를 초과 할 필요가 없다면 NVARCHAR (4000)로 만드십시오. 어쨌든 4000이 필요하면 MAX로 설정하십시오.