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

Откуда: Москва
Сообщений: 599
Microsoft SQL Server 2012 - 11.0.5343.0 (X64) 
	May  4 2015 19:11:32 
	Copyright (c) Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)


В некой таблице скажем Table1 есть наименование товаров по артикульно, также есть хранилище картинок этих Артикулов, (Путь допустим С:\image\01Б3434.jpg и т.д.), нужен запрос на какие позиции артикулов нет картинок.
20 янв 16, 17:39    [18707448]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
нужен запрос на какие позиции артикулов нет картинок.

Вы серьезно не можете написать запрос с join двух таблци ?
20 янв 16, 17:44    [18707487]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
нужен запрос на какие позиции артикулов нет картинок.

Вы серьезно не можете написать запрос с join двух таблци ?
Может не совсем корректно поставил вопрос. Первая таблица моя Table1, а вторая ввиде пути к картинке? Как это сделать?
20 янв 16, 17:46    [18707499]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
Первая таблица моя Table1, а вторая ввиде пути к картинке

Таблица в виде пути к картинке ?
Вы что курили ?
20 янв 16, 17:47    [18707509]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
Первая таблица моя Table1, а вторая ввиде пути к картинке

Таблица в виде пути к картинке ?
Вы что курили ?
Не понял вопрос про джоин двух таблиц тогда. Какая вторая таблица? у меня есть таблица наименований и картинки, которые лежат по определенному пути
20 янв 16, 17:49    [18707520]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
и картинки, которые лежат по определенному пути

И что вы хотите, чтобы mSSQL сделал с этими картинками ?
Которые лежат неизвестно где
20 янв 16, 17:51    [18707533]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
rootman
Member

Откуда:
Сообщений: 114
Glory
minya13_85
и картинки, которые лежат по определенному пути

И что вы хотите, чтобы mSSQL сделал с этими картинками ?
Которые лежат неизвестно где

Смею предположить что ТС хочет сделать запрос где в табличке с картинками поле равно null. Что по идеи должно означать что у товара нет картинки.
20 янв 16, 17:54    [18707549]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
и картинки, которые лежат по определенному пути

И что вы хотите, чтобы mSSQL сделал с этими картинками ?
Которые лежат неизвестно где
ничего не сделал, просто указал есть ли картинка в этом "неизвестно где" , битово 0, 1.
допустим
Артикул наличие
01Б34341
01К34350
01С45671
.........
01Т45450
20 янв 16, 17:56    [18707561]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
просто указал есть ли картинка

И каким образом сервер вдруг узнает, что там где-то во вне его существует ?
20 янв 16, 17:57    [18707570]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Может перегнать все наименования картинок во временную таблицу, а потом уже джоин этих двух таблиц?
20 янв 16, 17:58    [18707574]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
Может перегнать все наименования картинок во временную таблицу, а потом уже джоин этих двух таблиц?

Можно и так
20 янв 16, 17:59    [18707580]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
просто указал есть ли картинка

И каким образом сервер вдруг узнает, что там где-то во вне его существует ?
Так в этом и задача. Есть список товара, он огромный, и есть картинки их тоже много, но каких-то не хватает. Как мне показать что вот этих нет. Я думал как-то можно вытянуть название этих картинок до .jpg и загнать в таблицу
20 янв 16, 18:01    [18707600]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
Может перегнать все наименования картинок во временную таблицу, а потом уже джоин этих двух таблиц?

Можно и так
А как перегнать названия картинок?
20 янв 16, 18:02    [18707603]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
Как мне показать что вот этих нет

Ну так "перегнать все наименования картинок во временную таблицу"
А потом "уже джоин этих двух таблиц"
20 янв 16, 18:02    [18707607]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Glory
minya13_85
Как мне показать что вот этих нет

Ну так "перегнать все наименования картинок во временную таблицу"
А потом "уже джоин этих двух таблиц"
ну не вручную же.)) их несколько тысяч
20 янв 16, 18:06    [18707634]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
ну не вручную же.)) их несколько тысяч

А без MSSQL вы как получаете "наименование картинок" ?
20 янв 16, 18:07    [18707639]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2500
Да уж, дожили....
dir С:\image /b > ImgList.txt

Загружаем файл ImgList.txt в таблицу, скажем Table2.
Ну и запросом отбираем строки из Table1, для которых нет соотв. строк в Table2.
20 янв 16, 18:50    [18707772]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4806
minya13_85,

Может вам это почитать ?

https://msdn.microsoft.com/en-us/library/ff929144.aspx
20 янв 16, 20:28    [18707964]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
Я понял как сделать. Спасибо всем за советы!

Есть процедура, которая проверяет наличие файла в директории
EXEC Master.dbo.xp_fileexist 'C:\Images\01Б110001.jpg'


Результат процедуры как раз 0 и 1, существует ли файл в процедуре

Далее Артикул загоняю в параметр и курсором пробегаю по каждой строке своей таблицы. И результат данной процедуры, вставляю в временную таблицу. В принципе всё.
21 янв 16, 12:00    [18709769]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31488
minya13_85
Я понял как сделать. Спасибо всем за советы!

Есть процедура, которая проверяет наличие файла в директории
EXEC Master.dbo.xp_fileexist 'C:\Images\01Б110001.jpg'



Результат процедуры как раз 0 и 1, существует ли файл в процедуре

Далее Артикул загоняю в параметр и курсором пробегаю по каждой строке своей таблицы. И результат данной процедуры, вставляю в временную таблицу. В принципе всё.
Ужас какой. И оно будет сколько работать, сутки для небольшой папки?

Написали же - получайте командой dir сразу все имена файлов с диска, потом одним запросом получайте те файлы, которые есть в таблице и отсутствуют на диске.
21 янв 16, 12:08    [18709837]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 599
alexeyvg
Ужас какой. И оно будет сколько работать, сутки для небольшой папки?

Написали же - получайте командой dir сразу все имена файлов с диска, потом одним запросом получайте те файлы, которые есть в таблице и отсутствуют на диске.


Нет, запрос думает пару секунд. Мне нужен онлайн отчет. фотографы фоткают и сразу проверяют сколько осталось. Поэтому копированием в файл, а потом оттуда в mssql Не совсем онлайн получается.
21 янв 16, 13:14    [18710373]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
Владислав Колосов
Member

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

причем здесь SQL сервер и проверка каких-то файлов? Это не задача СУБД.
21 янв 16, 13:44    [18710595]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
aleks2
Guest
Владислав Колосов
minya13_85,

причем здесь SQL сервер и проверка каких-то файлов? Это не задача СУБД.


Да ладно, у нас вчерась в офисе гвоздь в стенку хотели забить - молотка не нашли.
Предлагали системным блоком попробовать забить.
22 янв 16, 06:10    [18714075]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
minya13_85
Нет, запрос думает пару секунд. Мне нужен онлайн отчет. фотографы фоткают и сразу проверяют сколько осталось. Поэтому копированием в файл, а потом оттуда в mssql Не совсем онлайн получается.

DECLARE @Path VARCHAR(100)
SET @Path = 'полный путь к головной директории в которой лежат поддиректории и файлы картинок'

-- получение списка файлов 
IF OBJECT_ID('TEMPDB..#dirtree') IS NOT NULL DROP TABLE #dirtree
CREATE TABLE #dirtree(subdirectory VARCHAR(256), depth INT, [file] INT)
INSERT INTO #dirtree (subdirectory,depth,[file]) EXEC xp_dirtree @Path, 0, 1
select [Артикул],case when d.[subdirectory] IS null then 0 else 1 end as [file_exists]
from mytable t
left join #dirtree d on t.[Артикул] = REPLACE(d.[subdirectory],'.jpg','')
22 янв 16, 07:30    [18714115]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31488
minya13_85
Поэтому копированием в файл, а потом оттуда в mssql Не совсем онлайн получается.
Какой "файл"??? Это 2 запроса. А не куча запросов в циклах, как в вашем решении. То же самое, только без циклов.
22 янв 16, 09:46    [18714379]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31488
LexusR,

Я бы только использовал
exec xp_cmdshell 'dir С:\image\*.jpg /b '

а то xp_dirtree всё таки недокументированная, да и с правами у этих функций немного не в порядке.
22 янв 16, 09:49    [18714388]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
o-o
Guest
alexeyvg
LexusR,

Я бы только использовал
exec xp_cmdshell 'dir С:\image\*.jpg /b '

а то xp_dirtree всё таки недокументированная, да и с правами у этих функций немного не в порядке.

как раз на xp_dirtree права у всех подряд,
а вот xp_cmdshell рequires CONTROL SERVER permission
22 янв 16, 10:43    [18714588]     Ответить | Цитировать Сообщить модератору
 Re: Как подтянуть картинки по ссылке  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31488
o-o
alexeyvg
LexusR,

Я бы только использовал
exec xp_cmdshell 'dir С:\image\*.jpg /b '


а то xp_dirtree всё таки недокументированная, да и с правами у этих функций немного не в порядке.

как раз на xp_dirtree права у всех подряд,
а вот xp_cmdshell рequires CONTROL SERVER permission
Это я понимаю, я немного про другое.

Эти xp_dirtree, xp_fileexist и прочие, как то странно обходятся с наследованием виндовых прав при запуске. Я с этим сталкивался, когда план обслуживания не может удалить файлы в папке на удалённом сервере. Приходилось переделывать на вызовы xp_cmdshell.
22 янв 16, 10:53    [18714631]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить