1

SQLServer2008を使用しています。

ユーザーがアップロードしたファイルをバイナリ列に格納するテーブル(TBL_FILE)があります。ただし、ユーザーはファイルにアクセスするためにシステムを開くことを望んでいません。テーブル(TBL_FILE)にマップするフォルダー(ネットワークドライブ、Webフォルダー、ローカルドライブ、ローカルフォルダー...が受け入れられます)が必要です。そのため、ファイルエクスプローラーでファイルを直接開くことができます。

重要な点は、ファイルエクスプローラーで直接ファイルを開きたいということです

それは可能ですか?そして、それを行うためにどのようなプログラムを書く必要がありますか?そして、セキュリティを行う方法は?

ありがとう!

アレックス

4

2 に答える 2

0

ログインを要求し、使いやすいユーザーインターフェイスでユーザーにファイルのリストを表示するアプリケーションを作成することを検討しましたか?これらのファイルを配置するフォルダーに、そのアプリケーションへのショートカットをドロップできます。

ファイルシステムからバイナリデータフィールドへの直接のショートカットが必要な場合は、少しハックする必要があります。ファイルが更新される頻度に応じて、次のいずれかのオプションを試すことができます。

1-Windowsサービスまたはスケジュールされたジョブとして実行されるアプリケーションを作成します。変更されたバイナリデータを定期的にチェックし、ディスクに保存します。短所:ファイルシステムは定期的にしか更新されないため、データベースの変更はすぐには利用できません。

2-バイナリファイルをディスクに保存するトリガーをテーブルに書き込みます。行が変更されるたびにトリガーを起動します。バイナリ値を直接チェックするのではなく、「最終変更時刻」または同様のフィールドを監視することをお勧めします。トリガーはCLRストアドプロシージャを起動するか、ここで説明する方法を使用してT-SQLから直接実行できます。短所:テーブルに時間のかかる可能性のあるトリガーがあります。

いずれの場合も、セキュリティはWindowsファイルシステムの問題になります。ファイルを表示するユーザーにフォルダへのアクセスを許可するだけです。

幸運を!

于 2011-04-15T00:48:38.577 に答える
-1

グーグルで検索した後、私はついにこの問題の解決策を見つけました。

.NETテクノロジまたはその他のサードパーティライブラリを使用して論理ドライブを作成できます。ライブラリの1つはDokenhttp ://dokan-dev.net/en/です。

Dokenを使用すると、コンピューターでドライブを作成し、自分でロジックを実行できます。データベース内のテーブルにフォルダをマッピングできるようです。しかし、私はまだそれを試していません。

ありがとう!

アレックス

于 2011-04-15T02:03:48.277 に答える