Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Здравствуйте.

Дано: файл размещенный на сетевом диске, например, q:\folder\file.txt
Задача: средствами БД, запросом, получить информацию о файле, а именно size

Селектом вывести результат. Вопрос, возможно ли это сделать ? Если да, то подскажите, как.
8 ноя 17, 04:06    [20935083]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
DECLARE @t TABLE([output] nvarchar(200))
INSERT INTO @t
EXEC master..xp_cmdshell 'dir g:\TEMP\BTNET.bak'
SELECT LTRIM(REPLACE([output], '1 File(s)', '')) size FROM @t WHERE CHARINDEX('1 File', [output]) > 0   
8 ноя 17, 06:49    [20935108]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52,

почти, 0 rows
8 ноя 17, 07:01    [20935114]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
А что возвращает?
EXEC master..xp_cmdshell 'dir g:\TEMP\BTNET.bak'

При этом надо учесть, что g:\TEMP\BTNET.bak - это файл с моего компа.
8 ноя 17, 07:05    [20935118]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52,

автор
При этом надо учесть, что g:\TEMP\BTNET.bak - это файл с моего компа.

учтено.

К сообщению приложен файл. Размер - 12Kb
8 ноя 17, 07:11    [20935124]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
ifindyou, картинка приемлемого качества

К сообщению приложен файл. Размер - 21Kb
8 ноя 17, 07:15    [20935127]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
Надо выполнить только это (с учетом вашего файла)
EXEC master..xp_cmdshell 'dir g:\TEMP\BTNET.bak'
8 ноя 17, 07:15    [20935128]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52,

1 The system cannot find the file specified.
2 NULL
8 ноя 17, 07:17    [20935131]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
А файла то нету :(
Тогда в cmd окне надо выполнить команду dir
dir g:\TEMP\BTNET.bak
И надо понимать - что это комп на котором крутится ваш SQL server
8 ноя 17, 07:21    [20935134]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52,

файл есть

автор
И надо понимать - что это комп на котором крутится ваш SQL server

не совсем, задачу нужно выполнить с клиента

К сообщению приложен файл. Размер - 10Kb
8 ноя 17, 07:30    [20935142]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
Задачка однако неоднозначна.
А как SQL догадается - за каким компом(как клиент) вы сидите?
8 ноя 17, 07:45    [20935155]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52, не знаю, как ?
8 ноя 17, 07:49    [20935157]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
Massa52
Member

Откуда:
Сообщений: 373
Поскольку только клиент знает где у него файловое хозяйство - ему и карты в руки.
Надо на клиенте сделать приложение или какой нить батник отправляющий по мере надобности размер файла/ов в SQL, в какую нить таблицу.
8 ноя 17, 08:00    [20935166]     Ответить | Цитировать Сообщить модератору
 Re: Как получить размер файла средствами БД  [new]
ifindyou
Member

Откуда:
Сообщений: 8
Massa52
Поскольку только клиент знает где у него файловое хозяйство - ему и карты в руки.
Надо на клиенте сделать приложение или какой нить батник отправляющий по мере надобности размер файла/ов в SQL, в какую нить таблицу.

Понятно.
8 ноя 17, 08:05    [20935172]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить