Как сопоставить папку с таблицей в SQL Server 2008? - PullRequest
1 голос
/ 15 апреля 2011

Я использую SQL Server 2008.

У меня есть таблица (TBL_FILE), в которой загруженные пользователем файлы хранятся в двоичном столбце. Однако пользователи не хотят открывать нашу систему для доступа к файлу. Они хотят иметь папку (сетевой диск, веб-папка, локальный диск, локальная папка ... принимаются), которая сопоставляется с таблицей (TBL_FILE). Таким образом, они могут напрямую открыть файл прямо в проводнике.

Ключевым моментом является , они хотят открывать файлы прямо в проводнике файлов .

Возможно ли это сделать? И какую программу мне нужно написать для этого? А как сделать охрану?

Спасибо!

Alex

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

после поиска в гугле я наконец-то нашел решение этой проблемы.

Мы могли бы создать логический диск с технологией .NET или другими сторонними библиотеками. Одна из библиотек - Doken http://dokan -dev.net / ru / .

Doken может позволить нам создать диск в компьютере и сделать логику самостоятельно. Кажется, что он может сопоставить папку с таблицей в базе данных. Но я еще не пробовал.

Спасибо!

Alex

0 голосов
/ 15 апреля 2011

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

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

1 - написать приложение, которое будет работать как служба Windows или как запланированное задание.Периодически проверяйте наличие измененных двоичных данных и сохраняйте их на диск.Недостаток: файловая система будет обновляться только через определенные промежутки времени, поэтому изменения базы данных не будут немедленно доступны.

2 - Запишите в таблицу триггер, который сохраняет двоичный файл на диск.Запускайте триггер всякий раз, когда строка изменяется - предпочтительно, отслеживая «время последнего изменения» или подобное поле, а не проверяя двоичное значение напрямую.Триггер может запустить хранимую процедуру CLR, или вы можете сделать это напрямую из T-SQL , используя метод, описанный здесь .Недостаток: у вас есть потенциально трудоемкий триггер для таблицы.

В любом случае безопасность становится проблемой файловой системы Windows.Просто предоставьте доступ к папке тому, кто должен видеть файлы.

Удачи!

...