|
Можно ли хранить картинки в базе (не путь к ним) | ☑ | ||
---|---|---|---|---|
0
Genri
18.02.09
✎
14:39
|
Может есть что-то не стандартное.
|
|||
1
ДенисЧ
18.02.09
✎
14:40
|
Если в SQL, то можно.
|
|||
2
Genri
18.02.09
✎
14:50
|
Как ?
|
|||
3
Ёпрст
18.02.09
✎
14:52
|
можно хранить всё что угодно.. любой тип файлов..
Хоть во внешней обработке, хоть в самом мд. |
|||
4
ДенисЧ
18.02.09
✎
14:52
|
Использовать тип IMAGE в sql-сервере и соответствующие операции из его же арсенала
|
|||
5
Sadovnikov
18.02.09
✎
14:59
|
RiK_SQL
СохранитьФайлВБазу(<?>,); Синтаксис: СохранитьФайлВБазу(<ИмяФайла>,<ТекстЗапроса>) Назначение: Сохранить файл с расширением doc или xls в базу SQL в поле, имеющее тип данных image. Возвращает: 1 в случае удачного выполнения метода, 0 - в случае ошибки. Параметры: <ИмяФайла> - строка, содержит путь и имя файла, который необходимо сохранить в базу. <ТекстЗапроса> - строка, содержит текст запроса, при помощи которого будет сохраняться файл в базу. Поле базы, содержащее файл, должно быть в запросе первым!!! Пример (файл хранится в поле Data): Процедура СохранитьФайлВБазу(НомФайла) ИмяФайла = ''''; ИмяКаталога = ''''; ТекстЗапроса = '' | Delete OKR_Periodik..Test Where NomDoc = ''+НомФайла+'' | Insert OKR_Periodik..Test (Data,NomDoc) Values (?,''+НомФайла+'') | ''; Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяКаталога,''Выберите файл'',''Все файлы (*.*)|*.*'',''*'')=1 Тогда Если ОбъектП.СохранитьФайлВБазу(ИмяКаталога+ИмяФайла,ТекстЗапроса) = 0 Тогда Сообщить(ТекстЗапроса); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
6
Genri
18.02.09
✎
15:06
|
Всем БОЛЬШОЕ СПАСИБО, буду пробовать.
|
|||
7
Armando
18.02.09
✎
15:11
|
Если дбф, то можно попробовать в строках неограниченной длины
|
|||
8
tetradon
18.02.09
✎
15:11
|
Это конечно все хорошо. Но если картинок много то размер базы вырастит непомерно ! И ворочаться она будет как на костылях. А какие классные буду скульные бэкапы Ммммм. В общем хорошенько подумайте :) Может их лучше все таки в каталоге хранить :)
|
|||
9
Genri
18.02.09
✎
15:14
|
(8)Так хочет заказчик, я предлагал в каталоге и говорил о последствиях ему по...
|
|||
10
GreyMen
18.02.09
✎
15:22
|
Вот у меня тоже сейчас встал вопрос о хранении картинок. Мнения разделились, я склоняюсь к хранению избражений в папках, а в базе ссылки. Как братва считает, есть ли смысл хранить изображения в базе или всетаки я прав и стоит хранить в папках?
|
|||
11
Ёпрст
18.02.09
✎
15:23
|
(10) всё зависит от дальнейшего использования..
имхо, тупо в папке. |
|||
12
lift
18.02.09
✎
15:23
|
(9) делай как хочет этот дурной заказчик, когда сдашь запоет по другому!
|
|||
13
GreyMen
18.02.09
✎
15:25
|
(11) дальнейшее использование - отображение по кнопочке на форме. Фотки номенклатуры, а её оооочень много
|
|||
14
Ёпрст
18.02.09
✎
15:26
|
(13) помимо конвертации картинки в базу, тебе придётся её еще и конвертить взад, чтоб отображалась...а это время.
|
|||
15
Sadovnikov
18.02.09
✎
15:41
|
(14) Махом это все делается. Если, конечно, не в форме списка это вытворять :)
///******************************** DEVIce 18.12.2008 Процедура ЗаписатьФотоВБД(элТовар, стрИмяФайла) Экспорт ТекстЗапроса = " |Set NoCount On | |Delete From " + ИмяБазыФотографий + ".ФотографииНоменклатуры |Where ExchangeIDТовар = '" + элТовар.ExchangeID + "' | |Insert Into " + ИмяБазыФотографий + ".ФотографииНоменклатуры (ExchangeIDТовар, Фотография, ДатаОбновления) |Values ('" + элТовар.ExchangeID + "', ?, '" + Формат(ТекущаяДата(), "ДГГГГММДД") + "')"; ОбъектП.СохранитьФайлВБазу(стрИмяФайла, ТекстЗапроса); КонецПроцедуры ///******************************** DEVIce 18.12.2008 ///******************************** DEVIce 19.12.2008 Функция ПолучитьФотоИзБД(элТовар) Экспорт Если фЕстьФотография(элТовар) = 0 Тогда Возврат ""; КонецЕсли; ТекстЗапроса = " |Set NoCount On | |Select | Фотографии.Фотография Фотография |From | " + ИмяБазыФотографий + ".ФотографииНоменклатуры Фотографии (NoLock) |Where | Фотографии.ExchangeIDТовар = '" + элТовар.ExchangeID + "'"; стрИмяФайла = КаталогВременныхФайлов() + GUID() + ".jpg"; Если ОбъектП.СохранитьФайлНаДиск(стрИмяФайла, ТекстЗапроса) = 1 Тогда Возврат стрИмяФайла; КонецЕсли; Возврат ""; КонецФункции ///******************************** DEVIce 19.12.2008 ///******************************** DEVIce 18.12.2008 Процедура Показать() Экспорт Если ПустоеЗначение(ИмяФайла) = 1 Тогда Возврат; КонецЕсли; оДокумент = СоздатьОбъект("MODI.Document"); оДокумент.Create(ИмяФайла); Сам(Контекст).Объект.Document = оДокумент; КонецПроцедуры ///******************************** DEVIce 18.12.2008 |
|||
16
Кириллка
18.02.09
✎
15:47
|
имхо, порочно хранить файлы ввиде ссылок на папки.
Есть инструмент в mssql, есть возможность - работает все замечательно. |
|||
17
Ёпрст
18.02.09
✎
15:50
|
(15) сколько это Всё весить будет в скуле ?
:)) |
|||
18
Ёпрст
18.02.09
✎
15:52
|
+17 та и какаой в этом практический смысл ?
Чтоб не спёрли/не попортили ? |
|||
19
Sadovnikov
18.02.09
✎
15:56
|
(17) Не много оно весит. Файлик фото - около 100 килобайтиков. Тоесть, на 30 тыс. товаров - около трех гигов всего.
(18) Ага, чтоб не попортили. И живет это хозяйство в соседней скульной базе. Можно каждый день не бэкапить. |
|||
20
milan
18.02.09
✎
16:04
|
(17) на сэкономленные от выигранных килобайтов деньги не сможешь нанять девочек, чтобы они заново потом вбивали в базу пути на картинки ;)
А если картинок еще и много ФС будет тормозить безбожно. |
|||
21
Злопчинский
18.02.09
✎
22:32
|
(20) лабуда полная! в базе не надо даже хранить пути на картинки. Нужно простое правило, которое преобразует "ид" товара в полное имя картинки, этого достаточно...
.. Согласен с Ёпрст - тупо в папке... .. (13) все что тебе надо - изложено и практически сделано уже здесь: бери, комбинируй и юзай (с минимальными переделками) http://www.infostart.ru/blogs/330/ http://www.infostart.ru/projects/2188/ http://www.infostart.ru/projects/1387/ |
|||
22
Moro
18.02.09
✎
23:15
|
(10) (13) В своё время решил копированием указываемых картинок в Определенную папку в папке с базой с одновременным переименованием имени картинки в код товара. Бэкапил отдельно. Кто лезет в служебные папки - ататат.
|
|||
23
Злопчинский
19.02.09
✎
00:41
|
(22) в (21) примерно все так и сделано... ну не имеет смысла в базе хранить несущественную инфу... от потери картинок товара я пострадавших не знаю... ;-)
|
|||
24
Sadovnikov
19.02.09
✎
07:57
|
(21), (23) Ситуации разные бывают. Например, требование очень крупного поставщика всегда иметь фото на абсолютно все товары. Иначе - разрыв договора.
|
|||
25
Стрелок
19.02.09
✎
07:59
|
(24) поможешь с 1С++? сори за офтоп
|
|||
26
Sadovnikov
19.02.09
✎
07:59
|
(25) С чем именно?
|
|||
27
Стрелок
19.02.09
✎
08:00
|
||||
28
Sadovnikov
19.02.09
✎
08:02
|
(27) Не... У тебя там dbf, блин. Боюсь фигни всякой наговорить...
|
|||
29
Mikeware
19.02.09
✎
08:29
|
(21) Не всегда так... Иногда на одной картинке - группа товаров.
Картинка-сертификат - опять же на группу товаров. Или несколько качественных на один товар, одну поставку... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |