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

Откуда:
Сообщений: 14
Сорри, если баян )
Подскажите, пожалуйста, как скачать файл из базы данных, сохраненный в формате image?
25 июн 14, 17:15    [16218820]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
куда скачать то ?
25 июн 14, 17:18    [16218841]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
mgVolt
Member

Откуда:
Сообщений: 14
Себе на диск.
25 июн 14, 17:19    [16218850]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а как вы его сохраняли в БД ?
25 июн 14, 17:20    [16218858]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
mgVolt
Member

Откуда:
Сообщений: 14
Я его не сохранял в БД. Это база данных приложения, куда загружаются файлы и оно их сохраняет в свою базу. Я хочу скачать файл из базы напрямую. Можно даже вручную.
25 июн 14, 17:24    [16218878]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
mgVolt, не знаю, как с image, по идее должно сработать.
declare @filename nvarchar(255)
        , @filedata varbinary(max)
        , @ObjectToken int;


set @filename = 'C:\temp\mysuperfile.txt';

select @filedata = data
from mytable
where name = 'myfilename';

exec sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT;
exec sp_OASetProperty @ObjectToken, 'Type', 1;
exec sp_OAMethod @ObjectToken, 'Open';
exec sp_OAMethod @ObjectToken, 'Write', NULL, @filedata;
exec sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @filename, 2;
exec sp_OAMethod @ObjectToken, 'Close';
exec sp_OADestroy @objectToken;
25 июн 14, 17:48    [16219058]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
mgVolt
Member

Откуда:
Сообщений: 14
Не получается (
The text, ntext, and image data types are invalid for local variables
25 июн 14, 17:57    [16219128]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
mgVolt, сервер то у вас какой? cast(data as varbinary(max)) не прокатит?
25 июн 14, 18:01    [16219163]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
mgVolt
Member

Откуда:
Сообщений: 14
Не прокатит, потому что max гораздо меньше размера файла. Предполагается, что прав администратора нет.
25 июн 14, 18:05    [16219184]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
varbinary(max) - это 2Гб. Размер точно равен image.


http://msdn.microsoft.com/en-us//library/ms188362.aspx
varbinary [ ( n | max) ]

Variable-length binary data. n can be a value from 1 through 8,000. max indicates that the maximum storage size is 2^31-1 bytes. The storage size is the actual length of the data entered + 2 bytes. The data that is entered can be 0 bytes in length. The ANSI SQL synonym for varbinary is binary varying.

...
image

Variable-length binary data from 0 through 2^31-1 (2,147,483,647) bytes.
25 июн 14, 18:08    [16219208]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
mgVolt
Member

Откуда:
Сообщений: 14
Да, вы правы, конечно. К сожалению, нет прав на исполнение функций, которые работают с файлами.
25 июн 14, 18:17    [16219261]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
mgVolt
Да, вы правы, конечно. К сожалению, нет прав на исполнение функций, которые работают с файлами.


ну так:
ставите экспресс, где вы админ, выбираете поле туда в таблицу, а уже из экспресса сохраняете
25 июн 14, 18:25    [16219309]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
mgVolt, второй вариант - через bcp.

нужен файлик с описанием формата - чтобы лишние символы в заголовке файла не писались (во вложении) и выполнить команду.

Выполняется в командной строке на сервере или на клиенте при установленных клиентских компонентах, если не ошибаюсь.

bcp "select Data from mydatabase.myschema.mytable" queryout "C:\temp\myfile.txt" -V90 -T -S MYSQLSERVER -f C:\temp\temp.fmt

Запрос, естественно, должен возвращать одну строку с одной колонкой.

К сообщению приложен файл (temp.fmt - 109bytes) cкачать
25 июн 14, 18:25    [16219312]     Ответить | Цитировать Сообщить модератору
 Re: Скачать файл из поля image  [new]
bacalavr
Member

Откуда:
Сообщений: 311
Ставите SSMSBoost и кликом правой кнопкой мыши сохраняете картинку из грида)
26 июн 14, 00:36    [16220679]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить