Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Хранение графических файлов.


Автор: Марина83 18.4.2005, 09:27
Заранее всем спасибо!
Скажите, пожалуйста, как хранить в базе данных графические файлы, и как их оттуда извлекать в XML? smile

Автор: Kurt 19.4.2005, 01:02
Ну, для хранения картинки, а следовательно файла в БД используются BLOB-поля.
А вот что значит
Цитата
как их оттуда извлекать в XML?

я не понял.
Вы хотите извлечь бинарный файл в xml-формате? smile

Автор: stron 19.4.2005, 08:35
А я бы файлы хранил на винте, а в базе ссылки
Если сервер загружен, то, возможно, будет быстрее

Автор: Kurt 19.4.2005, 14:05
Цитата
А я бы файлы хранил на винте, а в базе ссылки
Если сервер загружен, то, возможно, будет быстрее

Я интересовался этим вопросом. Вроде как одинаково - скорость та же.
Другое дело, что хранить лишь ссылки не всегда разумно. Например, не под веб. Для трехзвенки.

Автор: simanyay 19.4.2005, 14:14
Хранение ссылок вызывает дополнительную опасность удаления картинок без удаления ссылок. Т.е. опасность нарушения целостности.

Автор: stron 19.4.2005, 14:30
simanyay
не, ну это проверка в несколько строчек и проблемы нет
Добавлено @ 14:33
Тут речь идёт скорее о веб

Автор: stron 19.4.2005, 14:44
Кстати, в XML можно хранить графику,
Фактически она хранится как обычный текст

Но конвертить надо клиентом,..... , короче, не думаю, что СУБД это умеют

Для примера:
Visual Studio .NET
На форму добавляем pictureBox1 и в него загружаем файлик (я привел несколько строчек из XML файла). Студия конвертит всё в *.bmp


Код

 <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        /9j/4AAQSkZJRgABAgAAZABkAAD//gASQWRvYmUgSW1hZ2VSZWFkef/sABFEdWNreQABAAQAAAAuAAD/
        7gAOQWRvYmUAZMAAAAAB/9sAQwAKBwcHBwcKBwcKDgkICQ4QDAoKDBATDw8QDw8TEg4QDw8QDhISFRYX
        FhUSHR0fHx0dKSkpKSkvLy8vLy8vLy8v/9sAQwEKCQkKCwoNCwsNEA0ODRAUDg4ODhQXDw8RDw8XHRUS
        EhISFR0aHBcXFxwaICAdHSAgKCgmKCgvLy8vLy8vLy8v/8AAEQgA1AEbAwEiAAIRAQMRAf/EAB8AAAEF
        AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNR
        YQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpj
        ZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS
        09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
        C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoW
        JDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJ
        ipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
        9/j5+v/aAAwDAQACEQMRAD8A5wHHY0RkiQg8c5qZsKMs233JqAMHm3KdwPQ9q4nsz7HMUvYx1151+puW
        
</value>
  </data>

Автор: simanyay 19.4.2005, 15:18
Цитата(stron @ 19.4.2005, 16:30)
не, ну это проверка в несколько строчек и проблемы нет


Не понял.
Есть файл file01.jpg и запись в таблице с путём этого файла. Всё пучком всё работает. Но тут что-то случилось и этого файла больше нет.

А тут лезу я с запросом
Код

SELECT filename FROM pictures WHERE type='porn'


БД мне возвращает имя файла, я его пытаюсь схватить, и опа! А файла-то нет. Сл-но нарушена целостность БД.

Автор: stron 19.4.2005, 15:27
Ну, БД тебе вернула имя файла, а ты взял и проверил есть ли он, а потом уже хватаешь
Добавлено @ 15:29
Ты же не базой его хватаешь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)