На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Помогите ламмеру (MS SQL 2000)
    Есть набор файлов *.jpg
    Каждому файлу присвоен уникальный номер (ID)
    В базе есть таблица из двух полей : ID - Img
    Так вот как мне в таблицу в поле Img запихать эти файлы??? И какой тип поля для этого нужен (binary/image/???).
      вообще-то юзать BLOB - это очень плохо и непроизводительно :)
      гораздо лучше хранить файлы отдельно, а в БД делать ссылку на имя.

      но все же, если позарез нужно:
      тип поля - лучше всего image :)
      а как запихать? -
      в MySQL это было бы вот так:
      INSERT INTO table1 (IMG) VALUES (LOAD_FILE("C:\picture.jpg"));
      в SQL Server 2000 такого прикола, IMHO, нет, поэтому нужно просто считать файл с диска и передать его в БД с помощью INSERT.

        Программно - понятно Спасибо.
        А как мне создать базу из Enterprise Manager-а в которой уже будет некий набор изображений????? И которую я смогу там кому-то дать... Типа электронного фотоальбома на основе БД???
          никак! напиши свой клиент, который туда изображения запихает, а потом уже архивируй базу и неси, куда надо.
            :o

            А причем же здесь клиент-сервер?
            Имхо для "кому-то дать" тебе аксесс нужен...
              Ну "унеси" это если нет сети или просто локальная машина... А вообще нужно выложить в сети на MS SQL Server пачку картинок-схем, для пользования всеми пользователями...!!!

              И если клиентом это делать, то какой запрос нужно послать на сервер (типа какой формат INSERT INTO......) ???
                В таком случае имхо надо:
                1. Сделать веб-клиента для просмотра
                2. Сделать простенького клиента для "выкладывания" картинок
                3. Как мудро заметил Alfa, хранить в базе пути к файлам, а не сами картинки
                  1) любым удобным для тебя методом считываешь файл в буфер (файл нужно открыть в бинарном виде!)
                  2) Формируешь запрос вида
                  INSERT INTO table1 (IMG) VALUES (you_buffer);
                  где you_buffer - содержимое твоего буфера
                  3) выполняешь запрос!
                  Сообщение отредактировано: Iliya -
                    А может это из программы будет легче сделать?
                      Цитата Vit, 13.03.03, 16:22:11
                      А может это из программы будет легче сделать?

                      ??? из какой проги? я и так предложил Astral'у написать прогу! :)
                      или ты имеешь в виду - хранить базу картинок в своей проге?
                        Из проги это понятно, но мне нужен метод, которым я смогу в базу данных добавить изображение без проги..... Средствами самого SQL...
                        Да если не в лом - подскажите, как можно простой массив char[...] перевести в поток...
                        Т. е. переделать в поток...  :-/ ???
                          Да чуть не забыл...  :o
                          Доступ к базе разграничивается по правам... и админ (ну и еще некоторые группы) должен иметь возможность в случае необходимости добавить/изменить/удалить запись, а соответственно и изображение....
                          Во КАК 8)
                            Цитата Astral, 13.03.03, 17:29:46
                            Из проги это понятно, но мне нужен метод, которым я смогу в базу данных добавить изображение без проги..... Средствами самого SQL...
                            Да если не в лом - подскажите, как можно простой массив char[...] перевести в поток...
                            Т. е. переделать в поток...  :-/ ???

                            Средствами SQL - никак! по крайней мере я не видел такого способа для SQL Server.  Если кто знает - сам с удовольствием поучусь :) Так что либо мути прогу, либо переходи на MySQL  ;)
                            э..... я ваще-то Сишник... так что я не понял - как это char переделать в поток? ???
                            это пусть отвечают дельфисты! :)
                            Цитата

                            Доступ к базе разграничивается по правам... и админ (ну и еще некоторые группы) должен иметь возможность в случае необходимости добавить/изменить/удалить запись, а соответственно и изображение....

                            насчет изменить/удалить  - SQL это не графический редактор :D. Так что еще раз повторюсь - напиши ты программу для администрирования, это же несложно! и жить станет легче :)
                            а уж если станешь писать прогу - то лучше не хранить в БД сами файлы, а лишь ссылки на них - редактировать проще - просто открыть файл любым редактором. Но тогда встает вопрос - а зачем тебе вообще БД? :) ;)
                            Сообщение отредактировано: Iliya -
                              я бы не советовал "затачивать" секьюрити под SQL Server - дорогой он, и виндозно зависимый, а потому аппликуха не будет portable. Имхо все же лучше web-приложение, со "своей" ACL.
                                Касательно того - зачем база....
                                 Ведь там будут храниться не только картинки, но еще и описание, дополнения и т.д.
                                 Если в базу прописать пути к файлам, тогда при переносе на другую машину их нуна
                                   будет писать в такую-же директорию.....  8)

                                Касательно потока ...
                                 При работе с графикой можно данные для отображения взять из файла, а можно из
                                   потока, я сам раньше работал в Дельфях, но на работе програмлю в ВИЗУАЛЕ....
                                   В билдере 5 (и в делфях)есть компонент на закладке FastNet  --  TStreamServer/Client
                                   вроде так называется если не ошибаюсь, так вот там данные пересылаются потоками
                                   вот в подобную феню мне надо перевести байтовый массив......  :P ???

                                И со всем этим надо разобраться в течении 3-х дней.....  :(
                                (если бы делфи ....  :-[ написал за 3 часа....  ::))
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0367 ]   [ 14 queries used ]   [ Generated: 18.05.24, 23:58 GMT ]