MSSQL + Picture
2 отговора
141 прегледа
MSSQL + Picture
привет
как мога в MSSQL да insert - вам картинки от вида *.bmp, *.jpg и така нататък и как после да правя select - a за да мога да ги визуализирам в уеб браузер.
Благодаря предварително
как мога в MSSQL да insert - вам картинки от вида *.bmp, *.jpg и така нататък и как после да правя select - a за да мога да ги визуализирам в уеб браузер.
Благодаря предварително
Re: MSSQL + Picture
Kartinki ili kakyvto i da e tip dvoichni danni se pazqt v poleta ot tip image ili binary ( v zavisimost ot goleminata na file-a ). Dannite sami po sebe si mogat da se insert-vat i s obiknovena INSERT clause ( dannite sa v shestnaistichen vid ot vida '0xaa1542da1' ) no tam ima ogranichenie za dyljinata na stringa s dvoichnite danni( mislq che 256 simbola ). Za tazi cel trqbva da se izpolzva stored procedura.
Shto se otnasq do Web site - v <img> tag-a ( ili kakto tam mu beshe imeto ), kato link na kartinkata si slagash edna ASP stranica ( link-a e ot vida <GetPicture.asp?id=123> ), a v ASP stranicata vzimash dannite sys edin nai-prost SELECT i posle pravish Response.BinaryWrite i tova ti e igrata
Shto se otnasq do Web site - v <img> tag-a ( ili kakto tam mu beshe imeto ), kato link na kartinkata si slagash edna ASP stranica ( link-a e ot vida <GetPicture.asp?id=123> ), a v ASP stranicata vzimash dannite sys edin nai-prost SELECT i posle pravish Response.BinaryWrite i tova ti e igrata
Re: MSSQL + Picture
Като цяло идеята да се пазят картинки в база данни не е добра особено, когато става дума за Web сайт
По-добре е да се пази име на файл.
1. Картинките обикновено се вадят целите от БД. т.е. не се търси нищо вътре в картинката при което се губи смисъла от съхраняването в БД. Никоя БД не е оптимизирана за подобен тип работа. Напротив - файловите системи са оптимизирани точно за това - да ти предоставят Целия файл по зададено Име.
2. Принципен проблем на HTTP:
Когато се работи с динамично генерирани страници съдържанието не може да се кешира - всичко, което се извлича от БД се извлича при ВСЯКА заявка и минава по целия път до клиентския браузър.
Когато става дума за файлове картинката може да се кешира
- във паметта на Web сървъра
- във евентуален прокси-сървър, който клиента ползва (един или няколко)
- във локалния кеш на браузъра на крайния клиент.
Значи ако имаш една страница с 30-на картинки - бутони, меню фон, разделители и т.н. ако ги пазиш в БД при всеки Refresh ще минават 30 файла, а ако ги пазиш като файлове и само индексираш имената във БД (ако искаш размери, ключови думи и т.н.) клиентът ще източи картинките еднократно и ще сайтът ти ще работи доста по-бързо
Linux is like a wigwam - No Windows, No Gates, Apache inside
По-добре е да се пази име на файл.
1. Картинките обикновено се вадят целите от БД. т.е. не се търси нищо вътре в картинката при което се губи смисъла от съхраняването в БД. Никоя БД не е оптимизирана за подобен тип работа. Напротив - файловите системи са оптимизирани точно за това - да ти предоставят Целия файл по зададено Име.
2. Принципен проблем на HTTP:
Когато се работи с динамично генерирани страници съдържанието не може да се кешира - всичко, което се извлича от БД се извлича при ВСЯКА заявка и минава по целия път до клиентския браузър.
Когато става дума за файлове картинката може да се кешира
- във паметта на Web сървъра
- във евентуален прокси-сървър, който клиента ползва (един или няколко)
- във локалния кеш на браузъра на крайния клиент.
Значи ако имаш една страница с 30-на картинки - бутони, меню фон, разделители и т.н. ако ги пазиш в БД при всеки Refresh ще минават 30 файла, а ако ги пазиш като файлове и само индексираш имената във БД (ако искаш размери, ключови думи и т.н.) клиентът ще източи картинките еднократно и ще сайтът ти ще работи доста по-бързо
Linux is like a wigwam - No Windows, No Gates, Apache inside