2013-10-30 2 views
0

다른 사용자와 동일한 문제가있는 것 같습니다. SQLServerCE SDF file on Windows 7 그러나이 스레드의 조언에 따라 문제가 해결되지 않았습니다.Windows 7 장치에서 Windows 7 장치를 읽을 때 SQL CE DB가 읽히지 않습니다. Win 8

이것은 SQL Server CE v3.1 (DLL 버전 3.0.5300.0)과 관련이 있으며 Windows XP 32 비트 시스템에서 유틸리티를 사용하여 SDF 파일을 작성할 수 있지만 동일한 컴파일 된 코드와 DLL을 사용하여 Win 7 Dev Machine & 독립 실행 형 Win 8 Machine에서는 장치에서 데이터베이스를 올바르게 쿼리 할 수 ​​없습니다.

예를 들어 말해보세요.

SELECT Name FROM USERS WHERE Name = 'Joey' 

DB에서 1 ​​개의 결과를 반환해야합니다. Windows XP 컴퓨터에서 컴파일 된 경우 Windows 7/8 시스템에서 컴파일 되어도 읽히지 않고 결과 세트는 0입니다.

일부 쿼리가 아닌 모든 이상한 동작이 수행됩니다. 동일한 테이블이 다른 where 절로 조회되면 결과는 달라집니다. VS 2005에서 파일을 직접 확인하거나 .SDF 파일을 읽으려고 작성한 유틸리티를 사용하면 Windows 7/8에서 쿼리가 제대로 작동하는 것을 볼 수 있습니다.

SDF 파일 Windows 6.5 장치로 복사됩니다. 이 파일은 SQL Server CE v3.1 (DLL 버전 3.0.5300.0) 파일을 빌드 한 응용 프로그램과 동일한 DLL을가집니다.

32 비트 또는 64 비트 Win 7 또는 Win XP 시스템에서 빌드 할 때와 같은 결과이므로 x64/x32 아키텍처가 아닌지 확인하고 확인할 수 있습니다. DLL을 확인하는 방법 내가이의 해결 방법을 찾고 있지만, 추가 정보 등 도움이 될 MS의 일부 대한 간략한하지만 유용한 정보 (http://blogs.msdn.com/b/sqlservercompact/archive/2009/04/01/after-moving-the-database-from-one-platform-to-other-the-first-sqlceconnection-open-takes-more-time.aspx)

를 참조했던 마지막 게시물에서

... Visual Studio의 장치 (예 : 모듈) 창에서 실행중인 버전이 실제로 도움이됩니다.

답변

0

SQL Server CE (< 3.0.5300.0)의 초기 버전을 사용해야하는 불행한 점이 있다면 이것은 흥미로운 문제입니다. 당시에는 한계 였지만 해결을 위해 시간이 걸렸습니다.

기기의 모든 항목을 다시 확인했습니다. 이제 설치 프로그램 패키지에 적절한 DLL이 3.0.5300.0에 포함되어 있었지만 응용 프로그램 디렉토리 "$ \ DEVICE \ Program Files \ My Application"에 복사되지 않았습니다. 필자가 Windows 7/8에서 데이터베이스를 컴파일하고 해당 데이터베이스가 Windows 6.5 장치에서 작동하도록하려면 올바른 파일이 데스크톱 응용 프로그램과 Windows 장치 모두에 있음을 수동으로 확인해야했습니다. 다음과 같이 내가 두 응용 프로그램에 포함

파일은 있었다 : -

  • sqlceca30.dll
  • sqlcecompact30.dll
  • sqlceer30EN.dll
  • sqlceme30.dll
  • sqlceoledb30.dll
  • sqlceqp30.dll
  • sqlcese30.dll
  • System.Data.SqlServerCe.dll

버전 3.0.5300.0이고 2006 년 22 월 22 일자로 수정되었으며 "C : \ Program Files (x86) \ Microsoft SQL Server Compact Edition \ v3.1"에서 제공했습니다. 이전 버전에서 컴파일 할 때 (어쨌든) 실패했습니다.

많은 도움을 얻지 못했지만 다른 사람들이 도움이되기를 바랍니다.