2

上記のタスクに使用する必要のあるテクノロジーの多様性に非常に圧倒されています。スタックオーバーフロー株を検索しましたが、これを行うための手順の確実なチェックリストを特定できませんでした。

Word文書をデータベースに挿入するときに使用する必要のある手順/ツールの概要を知りたいと思います。

私は考えました:

  1. 単語ファイルをFileStreamとして読み取ります。
  2. それをxmlオブジェクト(単語ml)に逆シリアル化します。
  3. どういうわけか(方法はわかりませんが)、SQLサーバーのxml列にmlという単語を挿入します。

XMLSerializerオブジェクトを使用して単語mlを読み取ることは可能ですか?次に、それをデータベースに挿入するにはどうすればよいですか?

編集:実際には、xpathを使用してノードを検索するなど、保存されたデータに対して操作を実行する必要があるため、xmlとして保存する必要があります...

4

5 に答える 5

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-blob-in-the-ntfs-file-system-in-sql-server-2008/

于 2011-12-28T16:52:48.920 に答える
1

ほとんどの場合、ファイルをデータベースに「そのまま」格納する場合、ファイルは「BLOB」または「Binary Large OBject」として格納されます。

BLOB データを MSSQL に読み書きする方法に関する記事は次のとおりです: http://www.codecapers.com/post/manipulating-blob-data-in-mssql-with-c.aspx

ドキュメントの一部をデータベースからも検索できるようにする必要がある場合は、BLOB を列として作成し、これらの項目 (カテゴリ、キーワード、作成日、所有者など) の列またはテーブルの関係を追加することができます。

于 2011-12-28T16:50:02.133 に答える
0

byte[] ストリームの作成を検索したり、google Microsoft.Interop を検索したりできます。MDSN オンラインにはたくさんの例があります。

シリアライズしたい場合は、BinaryStreaming CodeProject.com と Stackoverflow を参照してください。過去のユーザーからの大量のサンプル、質問、およびソリューションが提供されます。

于 2011-12-28T16:46:18.167 に答える
0

実際、単語形式 (2010+) は、多数の XML を含む zip です:)。varbinary または text 列を使用することをお勧めします。

于 2011-12-28T16:46:52.693 に答える
0

XML を使用してこれを行うことはできないと思います。Word ドキュメントにはバイナリ コンテンツが含まれていると思います。私は FileStream を試して、それをデータベースにvarbinary(max). これは確かにそれを処理するための最も一般的で柔軟な方法であり、後で機能を拡張することを選択した場合、他のファイル タイプに対して記述したコードを再利用できます。

于 2011-12-28T16:47:25.903 に答える