2011-12-28 4 views
2

위의 작업에 사용해야하는 기술의 다양성에 상당히 압도되었습니다. 스택 오버 플로우 재고를 검색했지만이를 수행 할 수있는 확실한 단계의 체크리스트를 찾아 낼 수 없었습니다.SQL 서버 데이터베이스에 워드 문서를 삽입 하시겠습니까?

단어 문서를 데이터베이스에 삽입 할 때 사용해야하는 단계/도구에 대한 개요를보고 싶습니다. FileStream 객체로 워드 파일을 읽는

  1. : 약

    나는 생각했다.
  2. xml 객체 (단어 ml)로 비 직렬화합니다.
  3. 어떻게 든 (확실하지 않음) SQL Server의 xml 열에 ml이라는 단어를 삽입하십시오.

XMLSerializer 객체를 사용하여 단어 ml을 읽을 수 있습니까? 그런 다음 데이터베이스에 어떻게 삽입합니까?

편집 : 실제로 XPath를 사용하여 노드를 찾는 등의 저장된 데이터에 대한 작업을 수행 할 필요가 XML로 저장하기 때문에 나의 필요 ...

+0

당신이 내 워드 문서의 실제 "그래픽"표현하거나 텍스트가 필요하십니까? 목표에 따라 다양한 방식으로 접근 할 수 있습니다. – joshua9k

+2

데이터베이스에서 검색 가능하게하고 싶습니까? 그렇지 않은 경우에는 공간을 절약하기 위해 이진 형식의 BLOB로 저장하는 것이 좋습니다. 전체 텍스트를 검색 가능하게하려면 텍스트로 저장해야합니다. xml serialize를 원하는 이유가 확실하지 않습니다. – Andrey

+1

Word 문서가 XML로 저장되어 있거나 Word 2003의 .doc 형식 일 수도 있습니까? –

답변

2

FileStream 또는 일반 BLOB 저장소를 사용해야합니다. FileStream은 조금 더 초기 작업이 필요합니다. 그리고 이것을 사용하기 위해 이미 설치된 특정 데이터베이스를 업그레이드하는 데 문제가있었습니다. 이 기능을 사용하기 위해 서버를 다시 설치하려는 능력/의지에 따라 너무 멀리지나 가기 전에 확실히 개념 증명을 수행해야합니다. 기술적으로 BLOB 사용에 문제가 없었습니다

사용 패턴에 따라 어느 정도의 연구가 필요했는지에 대한 조사가 수행되었습니다. 예. 파일이 평균 1Mb보다 크고 빠른 읽기 액세스가 필요한 경우 FileStream을 사용하는 것이 좋습니다.

필자는 성능 차이를 거의 볼 수 없었지만 디자인 관점에서 FileStream을 선호합니다.

은 한 번보세요 :

http://technet.microsoft.com/en-us/library/bb933993.aspx

http://www.mssqltips.com/sqlservertip/1489/using-filestream-to-store-blobs-in-the-ntfs-file-system-in-sql-server-2008/

0

당신은 바이트 []뿐만 아니라 스트리밍 만들기 찾아 볼 수있다 Google에서 조회로 Microsoft.Interop 거기에 MDSN 온라인에 예제의 톤이 있습니다

BinaryStreaming CodeProject.com 에서뿐만 아니라 Stackoverflow 과거 사용자/질문 및 솔루션에서 샘플을 제공 할 것입니다 봐 직렬화하고자하는 경우.

0

실제로 단어 형식 (2010+)은 XML 묶음이 포함 된 zip입니다. :) varbinary 또는 text 열을 사용하는 것이 좋습니다.

0

XML을 사용하여이 작업을 수행 할 수 없을 것이라고 생각합니다. Word 문서에는 바이너리 콘텐츠가 있다고 생각합니다. 나는 FileStream을 시도해 데이터베이스에 varbinary(max)으로 저장하려고합니다. 이것은 확실히 가장 일반적이며 유연한 방법이며, 나중에 다른 파일 형식으로 작성한 코드를 재사용 할 수 있습니다.

+0

크기가 2GB 이하인 이진 열에는'varbinary (max)'를 사용하는 것이 좋습니다 ... –

+1

좋은 점. 나는 당신의 제안에 따라 나의 대답을 업데이트했다. – Jeff

+0

Filestream이 작동하면 재사용 가능성과 관련하여 varbinary와 차이가 없다고 말할 수 있습니다. 내가 잘못? –

1

대부분의 경우 파일을 데이터베이스에 "있는 그대로"저장하면 "BLOB"또는 "Binary Large OBject"로 저장됩니다. 여기

읽고 MSSQL에 BLOB 데이터를 작성하는 방법에 대한 기사입니다 : 문서의 일부 제품은 또한 데이터베이스에서 검색 할 필요가있는 경우 http://www.codecapers.com/post/manipulating-blob-data-in-mssql-with-c.aspx

, 당신은 여전히 ​​한 열으로 BLOB를 만들 수 있습니다 범주, 키워드, 만든 날짜, 소유자 등의 항목에 대한 추가 열 또는 테이블 관계

+0

제공된 링크가 종료되었습니다. – Paul

관련 문제