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

Откуда:
Сообщений: 795
Приветствую!
автор
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)

Необходимо загрузить пачку картинок в формате svg
Делаю так:
	INSERT INTO [eco3].[dbo].[IMG]
	SELECT * FROM OPENROWSET(BULK N'C:\1\svg\16к_1с_1-01.svg', SINGLE_BLOB) AS Picture

картинка падает (формат поля в базе 'image')
но если делаю выгрузку так:
	exec master..xp_cmdshell 
'bcp "SELECT img [eco3].[dbo].[IMG]" queryout c:\1.doc(или svg) -N -T', no_output


то файл вылетает 0 кб

1.Почему на выходе 0 кб?
2.Как загрузить сразу пачку картинок?
8 апр 16, 11:52    [19031803]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Glory
Member

Откуда:
Сообщений: 104760
mishanya3624
картинка падает

На пол падает ?

mishanya3624
1.Почему на выходе 0 кб?

Потому что вы отключили вывод сообщений из xp_cmdshell

mishanya3624
2.Как загрузить сразу пачку картинок?

В цикле грузить по одной
8 апр 16, 11:54    [19031818]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

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

Падает в базу данных.

Да вы правы, а почему теперь после выгрузки при открытии он не отображает его, как будто его нет, а размер один в один какой и у исходника?
Что-то читал, что при выгрузке он добавляет несколько байтов и из-за этого все рушится при отображении, или это не так?
8 апр 16, 13:13    [19032382]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
и еще 1 момент, как можно вытащить названия файлов отдельно?
8 апр 16, 13:14    [19032397]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Glory
Member

Откуда:
Сообщений: 104760
mishanya3624
Да вы правы, а почему теперь после выгрузки при открытии он не отображает его, как будто его нет, а размер один в один какой и у исходника?

Содрежимое не хотите сравнить ?

mishanya3624
Что-то читал, что при выгрузке он добавляет несколько байтов и из-за этого все рушится при отображении, или это не так?

Это - так. Если вы про bcp

mishanya3624
и еще 1 момент, как можно вытащить названия файлов отдельно?

А куда вы эти названия затащили ?
8 апр 16, 13:17    [19032413]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
iljy
Member

Откуда:
Сообщений: 8711
mishanya3624
Что-то читал, что при выгрузке он добавляет несколько байтов и из-за этого все рушится при отображении, или это не так?


Чтобы не добавлял, нужно сделать форматный файл, там можно задать структуру. Я для выгрузки картинок использовал такой

10.5
1
1 SQLBINARY 0 0 "" 1 Background ""
8 апр 16, 13:45    [19032637]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
Glory
А куда вы эти названия затащили ?


Названия пока никуда не затаскивал, вопрос в том можно ли из локального каталога, где лежит пачка картинок загрузить их названия, помимо содержимого?
8 апр 16, 13:51    [19032668]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Glory
Member

Откуда:
Сообщений: 104760
mishanya3624
вопрос в том можно ли из локального каталога, где лежит пачка картинок загрузить их названия,

вы про то, как выполнить команду dir в xp_cmdshell ?
8 апр 16, 13:52    [19032684]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

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

не очень понял, где создавать , как создавать?:)
8 апр 16, 14:14    [19032836]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
Glory
mishanya3624
вопрос в том можно ли из локального каталога, где лежит пачка картинок загрузить их названия,

вы про то, как выполнить команду dir в xp_cmdshell ?

спасибо:)
8 апр 16, 14:20    [19032893]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
Что-то не правильно делаю с курсором, ругается на + возле переменной @fname, в чем проблема может быть?
declare cur cursor for 
    select name from [eco3].[dbo].[IMG] where name is not null
    open cur
declare @fname varchar(255)
    fetch next from F into @fname
while @@FETCH_STATUS = 0
begin
INSERT INTO [eco3].[dbo].[IMG2] 
 SELECT * FROM OPENROWSET(BULK N'C:\1\svg\'+@fname+'', SINGLE_BLOB) 
 	fetch next from cur into @fname
end
	close cur
	deallocate cur
8 апр 16, 15:21    [19033448]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
mishanya3624]
open cur
[/quote]

mishanya3624
 fetch next from F into @fname


вы уж определитесь курсор у вас как называеться по факту
8 апр 16, 15:28    [19033535]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

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

упс:) суть остается той же
8 апр 16, 15:30    [19033564]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а что пишет сервер то ?
8 апр 16, 15:32    [19033580]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
Maxx,
автор
Сообщение 102, уровень 15, состояние 1, строка 9
Неправильный синтаксис около конструкции "+".


но что там не правильного не пойму, подсвечивает первый + и в popup пишет, что ожидаемо там ',' или ')'
8 апр 16, 15:36    [19033627]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
Glory
Member

Откуда:
Сообщений: 104760
mishanya3624
но что там не правильного не пойму,

Для того, чтобы понять, нужно изучить в хелпе правильный синтаксис команды
8 апр 16, 15:43    [19033687]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

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

добавляю переменную и все, ну хоть убей не вижу ошибки и синтаксис вроде правильный(но конечно неправильный:))...
8 апр 16, 16:20    [19034068]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
declare cur cursor for 
    select name from [eco3].[dbo].[IMG] where name is not null
	declare @fname varchar(255)	
	declare @str varchar(max)
	open cur
	fetch next from cur into @fname
while @@FETCH_STATUS = 0

begin
Set @str = 'INSERT INTO [eco3].[dbo].[IMG2] 
 SELECT * FROM OPENROWSET(BULK ''C:\1\svg '+ @fname +''', SINGLE_BLOB) as rr'

 exec @str
 	fetch next from cur into @fname
end
	close cur
	deallocate cur


пишет:
автор
Сообщение 203, уровень 16, состояние 2, строка 14
Имя "INSERT INTO [eco3].[dbo].[IMG2]
SELECT * FROM OPENROWSET(BULK 'C:\1\svg 16К_10С_1-01.svg', SINGLE_BLOB) as rr" не является допустимым идентификатором.
8 апр 16, 17:43    [19034457]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
разобрался
sp_executesql
8 апр 16, 18:12    [19034574]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
iljy
Member

Откуда:
Сообщений: 8711
mishanya3624
iljy,

не очень понял, где создавать , как создавать?:)


вы параметры bcp смотрели? Там есть такой параметр, как Format File. Создаете файл вида как я вам сказал, и указываете его в качестве параметра bcp.
8 апр 16, 19:15    [19034751]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
o-o
Guest
Можно и exec, но exec(@str), в скобках.
Без скобок exec ожидает идентификатор процедуры,
ну и там вы ему такое передаете, что он в ужасе пишет:
Имя "INSERT INTO [eco3].[dbo].[IMG2]
SELECT * FROM OPENROWSET(BULK 'C:\1\svg 16К_10С_1-01.svg', SINGLE_BLOB) as rr" не является допустимым идентификатором.
8 апр 16, 19:18    [19034765]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

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

Все понял, спасибо!
9 апр 16, 10:58    [19036017]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
mishanya3624
Member

Откуда:
Сообщений: 795
o-o,

Ясно, спасибо!
9 апр 16, 10:58    [19036018]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка SVG в базу  [new]
shalomb
Member

Откуда: Израиль
Сообщений: 77
В связи ,что уВас SQL2012 ,то можно ,это сделать и через ,File Table и тогда файлы ,физически сопируя в определеный директорий ,будут поадать в базу и когда вытаскивать есть то же два способа или работать с ними ,как с файлами или вытаскивать ,через базу ,данные скрипты использовались до 2012 версии , сейчас это то можно сделать более красивше.
9 апр 16, 14:03    [19036355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить