5

SQL Serverデータベースと通信して操作するUIフロントエンドがあります。それが実行できることの1つは、データベース内のデータに関するレポートを実行することです。

このUIは複数のコンピューターにインストールできます。これまでは、インストール時にレポートをフォルダーに保存してきましたが、これは、新しいレポートが追加されるたびに、すべてのUIインストールに手動でコピーする必要があることを意味します。そこの。

.rptファイルをデータベース自体(Blobとして)に保存し、レポートを一元化してこの問題を排除する方法として、必要に応じてUIがそれらをフェッチするメカニズムを用意することを考えていました。

誰かがこれを試しましたか、そしてそれはうまくいきましたか?または、そうでない場合は、これを進める前に私が考慮すべきことを考えていただけますか?あなたが考えることができるヒント、トリック、または警告は私に役立つかもしれませんか?

4

4 に答える 4

3

素晴らしい質問です。過去 6 か月以内にこれを実際に実装したばかりなので、これは一種の偶然です。

ご提案のとおり、rpt ファイルはデータベース内に保存しますが、Server 2005 ではイメージ タイプとして保存します。それは問題なく動作し、データベースに関する限り、心に浮かぶ警告は実際にはありません.

明らかに、この情報にアクセスする方法は API によって変わります。C# を使用している場合、これはBinaryReaderを使用して rpt ファイルにロードし、バイト配列を取得することに変換されます。このバイト配列は、ストアド プロシージャなどを介してデータベースに渡すことができます。

特にブロブと Server 2008 について質問されていることは承知していますが、これは Server 2005 と Server 2008 の両方で機能します。これが少し光を当てることを願っています。

より具体的な詳細が必要な場合は、喜んで共有します。

于 2008-10-09T05:28:35.603 に答える
1

Paul Randal (彼は DBCC の一部を書きました!) との素晴らしいポッドキャストです。ここでは、SQL Server 2008 の BLOB を処理するための新しいファイル ストリーム機能について説明していますが、BLOB としてうまく機能するファイルと機能しないファイルのサイズについても説明しています。話の一部。お役に立てると思います。 http://www.runasradio.com/default.aspx?showNum=74

Paul が書いた 25 ページの FILESTREAM ホワイトペーパーが MSDN で公開されていることを知りました。 http://msdn.microsoft.com/en-us/library/cc949109.aspx

このホワイト ペーパーで後述する調査に基づくと、256 キロバイト (KB) 未満の BLOB (ウィジェット アイコンなど) はデータベース内に格納するのが適切であり、1 メガバイト (MB) を超える BLOB はデータベース外に格納するのが最適です。サイズが 256 KB から 1 MB の場合、より効率的なストレージ ソリューションは、データの読み取りと書き込みの比率、および「上書き」の割合によって異なります。データベース内のみに BLOB データを格納する (たとえば、varbinary(max) データ型を使用する) 場合、BLOB あたり 2 ギガバイト (GB) に制限されます。

于 2008-10-09T02:47:50.187 に答える
1

これで、BLOB を SQL SERVER、ORACLE、SQLITE、MYSQL Server、およびその他の価値のあるデータベースに簡単に格納できるようになりました。私が疑問に思っているのは、DB からバイト配列を取得した後、どのようにレポートを作成したのですか?

私は同じことをしたいのですが、考えられる唯一のことは、DB からファイルを取得し、Temp フォルダーに物理ファイルを作成し、新しいファイルの物理アドレスを使用して Crystal Report を作成することです。メモリ ストリームまたはバイト配列から Crystal Report を作成する方法はありますか?

于 2008-10-23T15:33:49.387 に答える
-1

.RPTファイルは、画像としてタイプすることでデータベース(sql)に保存できます。バイト配列をデータベースに保存し、ストリームとして取得します。(ヒント:画像ファイルとして扱います。)

于 2015-03-12T07:56:02.860 に答える