2010-03-26 5 views
0

데이터베이스 용 SQL 서버를 사용하는 데스크톱 응용 프로그램 (C# .NET 3.5)이 있습니다. 그러나 클라이언트에서 데이터베이스를 그대로 내보내고 연결없이 랩톱에서 사용할 수 있도록 요청했습니다. 그들은 상위 서버에 대한 업데이트가 이러한 오프라인 클라이언트에 반영되지 않는다는 것을 알고 있습니다.오프라인 사용을 위해 SQL Server 데이터베이스 내보내기

DataSet을 이진 형식으로 저장하여 디스크에 쓰고 오프라인 클라이언트에 보낼 수있는 방법이 있습니까?

+0

오프라인 인스턴스 SQL Server도 있습니까? 데이터베이스의 크기가 4GB보다 작 으면 백업 및 복원이 가능하지만 로그인과 작업을 다시 만들어야합니다. –

+0

아닙니다. DataSet 개체를 이진 파일로 내보내고 파일로 저장할 수있게하고 싶습니다. – WedTM

답변

3

Compact Edition (일명 SDF 파일)을 사용하거나 기본 제공 방법을 사용하여 데이터 집합을 XML로 저장할 수 있습니다.

+0

XML 내보내기가 마음에 듭니다. 나는 이것을 할 것이라고 생각한다. – WedTM

2

SQL Server 수준의 백업을 가져 와서 예를 들어 설치할 수 없습니까? SQL Server Express를 랩톱에 설치하고 데이터베이스를 복원 하시겠습니까?

그런 식으로 응용 프로그램에서 특별한 작업을 수행 할 필요가 없습니다. 로컬 SQL Server Express 인스턴스를 가리 키도록 연결 문자열을 변경하면됩니다. 일련 번호가 지정된 데이터 세트 및 물건에 대해 신경 쓰지 않아도됩니다.

+0

추가 소프트웨어를 설치하지 않아도됩니다. 예, SQL Server Express는 옵션입니다. 그러나 대상 사용자는 기술적으로 정통하지 않으며 조직 전체에서 네트워크 브라우저에 20,000 개의 SQL Server Express 인스턴스가 표시되는 것을 원하지 않습니다. – WedTM

+0

더하기 "필요시"병합 복제를 구성하여 두 데이터를 동기화 할 수 있습니다 (행 가이드 열은 일부 데이터 액세스 코드의 통증처럼 느껴짐). – KSimons

+0

이것은 싱크로 (syncro) 상황이 아닙니다. 나는 syncro'ed를 원하지 않을 것이다. 기본적으로 90 %의 시간 동안 사용되는 중앙 서버가 있습니다. 그러나 어떤 때는 연결이되지 않는 워크 스테이션을 가지고 있기 때문에 단순히 한 사람에게 데이터를 "내보내기"시켜 연결되지 않은 시스템의 운영자에게 넘길 수있는 방법을 원했습니다. – WedTM

4

이 사례를 다루는 전체 도구 및 기술, 즉 Synch Framework가 있습니다. Synchronizing Databases을 참조하십시오. SQL Server 중앙 데이터베이스와 동기화 된 클라이언트 (.SDF 파일)에 SQL Server Compact Edition 파일과 관련된 시작 예제는 Getting Started: Client and Server Synchronization을 참조하십시오. 클라이언트는 응용 프로그램 이외의 다른 프로그램을 설치하지 않으며 SQL Server CE는 응용 프로그램과 함께 배포하는 몇 개의 인 프로세스 DLL이며 클라이언트의 SQL Express 에디션만큼 복잡하지 않습니다.

좋은 소식은 Synch Framework가 클라이언트가 데이터베이스의 자체 스냅 샷을 얻는 것을 허용 할뿐만 아니라 실제로 연결이 끊긴 상태에서 적용된 변경 사항을 중앙 사이트로 다시 병합 할 수 있다는 것입니다.

관련 문제