Как получить список файлов из локальной файловой системы в SQL Server 2005? - PullRequest
0 голосов
/ 04 мая 2009

В названии это сказано, но я немного уточню.

Я использую SQL Server 2005 и пишу запрос на экспорт, который возвращает список пользователей. У некоторых пользователей есть изображения профиля, у некоторых нет. Изображение профиля вообще не представлено в базе данных. В файловой системе есть только файл с именем [username] .jpg. Поэтому мне нужно проверить, существует ли такой файл для пользователя.

Ответы [ 3 ]

1 голос
/ 05 мая 2009

Если вы должны сделать это из SQL, вы можете использовать xp_cmdshell и «если есть». Это не включено по умолчанию из соображений безопасности, поэтому будьте осторожны.

включить xp_cmdshell:

sp_configure 'show advanced options', 1
reconfigure
sp_configure 'xp_cmdshell', 1
reconfigure

использовать xp_cmdshell:

xp_cmdshell 'if exist c:\blargh.txt echo 1'
1 голос
/ 04 мая 2009

Ну, если нужно, вы всегда можете сделать следующее

DECLARE  @fso int,
         @hr int
EXECUTE @hr = sp_OACreate 'Scripting.FileSystemObject', @fso OUT

От этого вы можете (если hr = 0) получить старый добрый FileSystemObject .

С этого момента вы должны быть в состоянии сделать следующее

EXECUTE sp_OAMethod @fso, 'FileExists', @hr OUT, @FileName 

Но на самом деле, если вы хотите сделать это, вы идете в ад **** ухмыляясь ****

Конечно, это зависит от многих вещей, конфигурации вашего сервера SQL, пользователя, на котором он работает, и т. Д. И т. Д. Ваш пробег может отличаться.

0 голосов
/ 04 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...