вставить текстовый документ в базу данных сервера SQL? - PullRequest
2 голосов
/ 28 декабря 2011

Я чувствую себя совершенно ошеломленным разнообразием технологий, которые мне нужно было бы использовать для вышеуказанной задачи.Я искал запасы переполнения стека, но не смог определить точный контрольный список шагов, чтобы сделать это.

Я хотел бы получить обзор шагов / инструментов, которые необходимо использовать при вставке словадокумент в базу данных.

Я думал о:

  1. чтении файла слова как FileStream.
  2. десериализации его в объект xml (слово ml).
  3. каким-то образом (не знаю, как) вставить слово ml в столбец xml на сервере sql.

возможно ли прочитать слово ml с помощью объекта XMLSerializer?как бы мне затем вставить его в базу данных?

Редактировать: Мне действительно нужно выполнять операции с сохраненными данными, такие как поиск узлов с использованием xpath, поэтому мне нужно сохранить его как XML ...

Ответы [ 5 ]

2 голосов
/ 28 декабря 2011

Вам следует либо использовать FileStream, либо обычное BLOB-хранилище.FileStream требует немного больше начальной работы, и у меня были проблемы с обновлением некоторых уже установленных баз данных, чтобы использовать это.В зависимости от вашей способности / желания переустанавливать серверы, чтобы заставить это работать, вы, безусловно, должны сделать проверку концепции, прежде чем заходить слишком далеко.Технически, у меня никогда не было проблем с использованием больших двоичных объектов

. Было проведено некоторое исследование относительно того, какие из них следует выбирать в зависимости от модели использования.То есть.если ваши файлы в среднем занимают более 1 МБ и вам нужен быстрый доступ для чтения, вам лучше использовать 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/

1 голос
/ 28 декабря 2011

В большинстве случаев, если файл должен храниться в базе данных «как есть», он сохраняется как «BLOB» или «Binary Large OBject».

Вот статья о том, как читать и записывать BLOB-данные в MSSQL: http://www.codecapers.com/post/manipulating-blob-data-in-mssql-with-c.aspx

Если некоторая часть вашего документа также должна быть доступна для поиска из базы данных, вы можете создать BLOB как столбец и при этом иметь дополнительные столбцы или связи таблиц для этих элементов (таких как категории, ключевые слова, дата создания, владелец и т. Д.). )

0 голосов
/ 28 декабря 2011

На самом деле формат слова (2010+) представляет собой почтовый индекс, содержащий множество XML-файлов :).Я бы порекомендовал использовать varbinary или text column.

0 голосов
/ 28 декабря 2011

Я не думаю, что вы сможете использовать XML для этого; Я верю, что документы Word содержат двоичное содержимое. Я хотел бы попробовать FileStream и сохранить его в базе данных как varbinary(max). Это, безусловно, самый общий и гибкий способ его обработки, и вы сможете повторно использовать код, который вы пишете, для любого другого типа файла, если вы решите расширить функциональность позже.

0 голосов
/ 28 декабря 2011

Вы можете поискать создание потока байтов [], а также поиск в google Microsoft.Interop. В MDSN есть множество примеров

Если вы хотите сериализоваться, взгляните и на BinaryStreaming CodeProject.comкак Stackoverflow предоставит тонны образцов от прошлых пользователей / вопросов и решений.

...