Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
mgVolt Member Откуда: Сообщений: 14 |
Сорри, если баян ) Подскажите, пожалуйста, как скачать файл из базы данных, сохраненный в формате image? |
25 июн 14, 17:15 [16218820] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
куда скачать то ? |
25 июн 14, 17:18 [16218841] Ответить | Цитировать Сообщить модератору |
mgVolt Member Откуда: Сообщений: 14 |
Себе на диск. |
25 июн 14, 17:19 [16218850] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
а как вы его сохраняли в БД ? |
25 июн 14, 17:20 [16218858] Ответить | Цитировать Сообщить модератору |
mgVolt Member Откуда: Сообщений: 14 |
Я его не сохранял в БД. Это база данных приложения, куда загружаются файлы и оно их сохраняет в свою базу. Я хочу скачать файл из базы напрямую. Можно даже вручную. |
25 июн 14, 17:24 [16218878] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
mgVolt Member Откуда: Сообщений: 14 |
Не получается ( The text, ntext, and image data types are invalid for local variables |
25 июн 14, 17:57 [16219128] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
mgVolt, сервер то у вас какой? cast(data as varbinary(max)) не прокатит? |
25 июн 14, 18:01 [16219163] Ответить | Цитировать Сообщить модератору |
mgVolt Member Откуда: Сообщений: 14 |
Не прокатит, потому что max гораздо меньше размера файла. Предполагается, что прав администратора нет. |
25 июн 14, 18:05 [16219184] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
varbinary(max) - это 2Гб. Размер точно равен image.
|
||
25 июн 14, 18:08 [16219208] Ответить | Цитировать Сообщить модератору |
mgVolt Member Откуда: Сообщений: 14 |
Да, вы правы, конечно. К сожалению, нет прав на исполнение функций, которые работают с файлами. |
25 июн 14, 18:17 [16219261] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
ну так: ставите экспресс, где вы админ, выбираете поле туда в таблицу, а уже из экспресса сохраняете |
||
25 июн 14, 18:25 [16219309] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
bacalavr Member Откуда: Сообщений: 311 |
Ставите SSMSBoost и кликом правой кнопкой мыши сохраняете картинку из грида) |
26 июн 14, 00:36 [16220679] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |